From a3b86bb80734501120c917c2ae64d215f8aac6b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADnez?= Date: Fri, 12 Apr 2019 17:20:02 +0200 Subject: [PATCH 01/12] Update contracts to v1.0.0 --- safe-contracts/build/contracts/BaseSafe.json | 424 +- .../build/contracts/CreateAndAddModules.json | 730 +- .../build/contracts/DailyLimitModule.json | 3053 +- .../contracts/DelegateConstructorProxy.json | 350 +- safe-contracts/build/contracts/Enum.json | 68 +- .../build/contracts/EtherPaymentFallback.json | 80 +- safe-contracts/build/contracts/Executor.json | 1540 +- .../build/contracts/GnosisSafe.json | 15366 ++++--- .../build/contracts/ISignatureValidator.json | 294 +- .../build/contracts/MasterCopy.json | 392 +- .../build/contracts/Migrations.json | 435 +- .../build/contracts/MockContract.json | 34450 ++++++++------- .../build/contracts/MockInterface.json | 34458 ++++++++-------- safe-contracts/build/contracts/Module.json | 600 +- .../build/contracts/ModuleManager.json | 4598 ++- safe-contracts/build/contracts/MultiSend.json | 220 +- .../build/contracts/OwnerManager.json | 5818 +-- .../build/contracts/PayingProxy.json | 754 +- safe-contracts/build/contracts/Proxy.json | 790 +- .../build/contracts/ProxyFactory.json | 2603 +- safe-contracts/build/contracts/SafeMath.json | 3279 ++ .../build/contracts/SecuredTokenTransfer.json | 256 +- .../build/contracts/SelfAuthorized.json | 144 +- .../build/contracts/SignatureDecoder.json | 774 +- .../build/contracts/SocialRecoveryModule.json | 3003 +- .../build/contracts/StateChannelModule.json | 2507 +- safe-contracts/build/contracts/Token.json | 172 +- .../build/contracts/WhitelistModule.json | 2093 +- .../test/ApproveAndCallFallBack.json | 14216 ------- .../build/contracts/test/ERC20Interface.json | 14363 ------- .../build/contracts/test/EmptyToken.json | 14205 ------- .../build/contracts/test/Owned.json | 14264 ------- .../build/contracts/test/SafeMath.json | 14189 ------- .../build/contracts/test/TestToken.json | 14541 ------- 34 files changed, 64942 insertions(+), 140087 deletions(-) create mode 100644 safe-contracts/build/contracts/SafeMath.json delete mode 100644 safe-contracts/build/contracts/test/ApproveAndCallFallBack.json delete mode 100644 safe-contracts/build/contracts/test/ERC20Interface.json delete mode 100644 safe-contracts/build/contracts/test/EmptyToken.json delete mode 100644 safe-contracts/build/contracts/test/Owned.json delete mode 100644 safe-contracts/build/contracts/test/SafeMath.json delete mode 100644 safe-contracts/build/contracts/test/TestToken.json diff --git a/safe-contracts/build/contracts/BaseSafe.json b/safe-contracts/build/contracts/BaseSafe.json index 6b8c20d3..4b1e1cd1 100644 --- a/safe-contracts/build/contracts/BaseSafe.json +++ b/safe-contracts/build/contracts/BaseSafe.json @@ -307,61 +307,62 @@ "type": "event" } ], - "bytecode": "0x608060405234801561001057600080fd5b506128c9806100206000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100c75780632f54bf6e14610114578063468721a71461016f578063610b592514610227578063694e80c31461026a57806385e332cd146102975780638cff6355146102ee578063a0e67e2b14610345578063b2494df3146103b1578063e009cfde1461041d578063e318b52b14610480578063e75235b814610503578063f8dc5dd91461052e575b005b3480156100d357600080fd5b50610112600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061059b565b005b34801561012057600080fd5b50610155600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a04565b604051808215151515815260200191505060405180910390f35b34801561017b57600080fd5b5061020d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561023357600080fd5b50610268600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb1565b005b34801561027657600080fd5b5061029560048036038101908080359060200190929190505050610fee565b005b3480156102a357600080fd5b506102ac611239565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102fa57600080fd5b5061030361123e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035157600080fd5b5061035a611243565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561039d578082015181840152602081019050610382565b505050509050019250505060405180910390f35b3480156103bd57600080fd5b506103c66113de565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104095780820151818401526020810190506103ee565b505050509050019250505060405180910390f35b34801561042957600080fd5b5061047e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611681565b005b34801561048c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af9565b005b34801561050f57600080fd5b5061051861220c565b6040518082815260200191505060405180910390f35b34801561053a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612216565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156106b85750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600354141515610a00576109ff81610fee565b5b5050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610b9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610ba7858585855a61275e565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cce5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002548111151515611157576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806003819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936003546040518082815260200191505060405180910390a150565b600181565b600181565b60608060008060025460405190808252806020026020018201604052801561127a5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156113d55780838381518110151561132a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506112e5565b82935050505090565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156114f0576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061144c565b8260405190808252806020026020018201604052801561151f5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611678578181848151811015156115ce57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611589565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561174a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561179e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611c165750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611dcb5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611e3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611f67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016002540310151515612382576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156123d65750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561244a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806003541415156127595761275881610fee565b5b505050565b6000806000600281111561276e57fe5b84600281111561277a57fe5b14156127935761278c8787878661285b565b9150612851565b600160028111156127a057fe5b8460028111156127ac57fe5b14156127c4576127bd878685612874565b9150612850565b6127cd8561288b565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820a8a2b520d7d496943dca4ccdd5d3bd3b7788132d42c3118aa0577fe7365e28210029", - "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100c75780632f54bf6e14610114578063468721a71461016f578063610b592514610227578063694e80c31461026a57806385e332cd146102975780638cff6355146102ee578063a0e67e2b14610345578063b2494df3146103b1578063e009cfde1461041d578063e318b52b14610480578063e75235b814610503578063f8dc5dd91461052e575b005b3480156100d357600080fd5b50610112600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061059b565b005b34801561012057600080fd5b50610155600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a04565b604051808215151515815260200191505060405180910390f35b34801561017b57600080fd5b5061020d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561023357600080fd5b50610268600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb1565b005b34801561027657600080fd5b5061029560048036038101908080359060200190929190505050610fee565b005b3480156102a357600080fd5b506102ac611239565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102fa57600080fd5b5061030361123e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035157600080fd5b5061035a611243565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561039d578082015181840152602081019050610382565b505050509050019250505060405180910390f35b3480156103bd57600080fd5b506103c66113de565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104095780820151818401526020810190506103ee565b505050509050019250505060405180910390f35b34801561042957600080fd5b5061047e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611681565b005b34801561048c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af9565b005b34801561050f57600080fd5b5061051861220c565b6040518082815260200191505060405180910390f35b34801561053a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612216565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156106b85750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600354141515610a00576109ff81610fee565b5b5050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610b9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610ba7858585855a61275e565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cce5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002548111151515611157576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806003819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936003546040518082815260200191505060405180910390a150565b600181565b600181565b60608060008060025460405190808252806020026020018201604052801561127a5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156113d55780838381518110151561132a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506112e5565b82935050505090565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156114f0576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061144c565b8260405190808252806020026020018201604052801561151f5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611678578181848151811015156115ce57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611589565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561174a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561179e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611c165750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611dcb5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611e3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611f67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016002540310151515612382576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156123d65750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561244a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806003541415156127595761275881610fee565b5b505050565b6000806000600281111561276e57fe5b84600281111561277a57fe5b14156127935761278c8787878661285b565b9150612851565b600160028111156127a057fe5b8460028111156127ac57fe5b14156127c4576127bd878685612874565b9150612850565b6127cd8561288b565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820a8a2b520d7d496943dca4ccdd5d3bd3b7788132d42c3118aa0577fe7365e28210029", - "sourceMap": "371:680:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:680:2;;;;;;;", - "deployedSourceMap": "371:680:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2225:627:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5925:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5925:129:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2785:429:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:495;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:495:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:441:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5357:441:6;;;;;;;;;;;;;;;;;;;;;;;;;;488:55:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;419:54:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;6136:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6136:458:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6136:458:6;;;;;;;;;;;;;;;;;3293:738:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3293:738:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3293:738:5;;;;;;;;;;;;;;;;;1938:511;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1938:511:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4345:823:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4345:823:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5804:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5804:115:6;;;;;;;;;;;;;;;;;;;;;;;3194:817;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3194:817:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2397:1:6;2388:5;:10;;;;:38;;;;;469:3;2402:24;;:5;:24;;;;2388:38;2380:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:1;2519:6;:13;2526:5;2519:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2511:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2595:6;:23;469:3;2595:23;;;;;;;;;;;;;;;;;;;;;;;;;2579:6;:13;2586:5;2579:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2654:5;2628:6;:23;469:3;2628:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2669:10;;:12;;;;;;;;;;;;;2696:17;2707:5;2696:17;;;;;;;;;;;;;;;;;;;;;;2794:10;2781:9;;:23;;2777:68;;;2818:27;2834:10;2818:15;:27::i;:::-;2777:68;2225:627;;:::o;5925:129::-;6002:4;6046:1;6029:6;:13;6036:5;6029:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;6022:25;;5925:129;;;:::o;2785:429:5:-;2917:12;3025:1;3002:7;:19;3010:10;3002:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2994:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3161:46;3169:2;3173:5;3180:4;3186:9;3197;3161:7;:46::i;:::-;3151:56;;2785:429;;;;;;:::o;1182:495::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:5;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1649:21;1663:6;1649:21;;;;;;;;;;;;;;;;;;;;;;1182:495;:::o;5357:441:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:10:6;;5527;:24;;5519:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5675:1;5661:10;:15;;5653:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5739:10;5727:9;:22;;;;5764:27;5781:9;;5764:27;;;;;;;;;;;;;;;;;;5357:441;:::o;488:55:5:-;539:3;488:55;:::o;419:54:6:-;469:3;419:54;:::o;6136:458::-;6202:9;6227:22;6321:13;6348:20;6266:10;;6252:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6252:25:6;;;;6227:50;;6337:1;6321:17;;6371:6;:23;469:3;6371:23;;;;;;;;;;;;;;;;;;;;;;;;;6348:46;;6404:162;469:3;6410:31;;:12;:31;;;;6404:162;;;6472:12;6457:5;6463;6457:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6513:6;:20;6520:12;6513:20;;;;;;;;;;;;;;;;;;;;;;;;;6498:35;;6547:8;;;;;;;6404:162;;;6582:5;6575:12;;6136:458;;;;:::o;3293:738:5:-;3360:9;3419:19;3452:21;3652:22;3441:1;3419:23;;3476:7;:25;539:3;3476:25;;;;;;;;;;;;;;;;;;;;;;;;;3452:49;;3511:132;539:3;3517:33;;:13;:33;;;;3511:132;;;3582:7;:22;3590:13;3582:22;;;;;;;;;;;;;;;;;;;;;;;;;3566:38;;3618:14;;;;;;;3511:132;;;3691:11;3677:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3677:26:5;;;;3652:51;;3761:1;3747:15;;3788:7;:25;539:3;3788:25;;;;;;;;;;;;;;;;;;;;;;;;;3772:41;;3823:180;539:3;3829:33;;:13;:33;;;;3823:180;;;3899:13;3878:5;3884:11;3878:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3942:7;:22;3950:13;3942:22;;;;;;;;;;;;;;;;;;;;;;;;;3926:38;;3978:14;;;;;;;3823:180;;;4019:5;4012:12;;3293:738;;;;:::o;1938:511::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2152:1:5;2141:6;2133:20;;;;:59;;;;;539:3;2157:35;;2165:6;2157:35;;;;2133:59;2125:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:6;2246:38;;:7;:19;2254:10;2246:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2238:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2361:7;:15;2369:6;2361:15;;;;;;;;;;;;;;;;;;;;;;;;;2339:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2404:1;2386:7;:15;2394:6;2386:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2420:22;2435:6;2420:22;;;;;;;;;;;;;;;;;;;;;;1938:511;;:::o;4345:823:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4528:1:6;4516:8;:13;;;;:44;;;;;469:3;4533:27;;:8;:27;;;;4516:44;4508:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4673:1;4653:6;:16;4660:8;4653:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4645:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4819:1;4807:8;:13;;;;:44;;;;;469:3;4824:27;;:8;:27;;;;4807:44;4799:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4925:8;4904:29;;:6;:17;4911:9;4904:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4896:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5005:6;:16;5012:8;5005:16;;;;;;;;;;;;;;;;;;;;;;;;;4986:6;:16;4993:8;4986:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5051:8;5031:6;:17;5038:9;5031:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5088:1;5069:6;:16;5076:8;5069:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;5104:22;5117:8;5104:22;;;;;;;;;;;;;;;;;;;;;;5141:20;5152:8;5141:20;;;;;;;;;;;;;;;;;;;;;;4345:823;;;:::o;5804:115::-;5873:7;5903:9;;5896:16;;5804:115;:::o;3194:817::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:10:6;3415:1;3402:10;;:14;:28;;3394:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3595:1;3586:5;:10;;;;:38;;;;;469:3;3600:24;;:5;:24;;;;3586:38;3578:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3698:5;3677:26;;:6;:17;3684:9;3677:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3669:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3776:6;:13;3783:5;3776:13;;;;;;;;;;;;;;;;;;;;;;;;;3756:6;:17;3763:9;3756:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3815:1;3799:6;:13;3806:5;3799:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3826:10;;:12;;;;;;;;;;;;;;3853:19;3866:5;3853:19;;;;;;;;;;;;;;;;;;;;;;3953:10;3940:9;;:23;;3936:68;;;3977:27;3993:10;3977:15;:27::i;:::-;3936:68;3194:817;;;:::o;313:548:3:-;444:12;715:19;489;476:32;;;;;;;;:9;:32;;;;;;;;;472:383;;;532:35;544:2;548:5;555:4;561:5;532:11;:35::i;:::-;522:45;;472:383;;;599:27;586:40;;;;;;;;:9;:40;;;;;;;;;582:273;;;650:36;670:2;674:4;680:5;650:19;:36::i;:::-;640:46;;582:273;;;737:19;751:4;737:13;:19::i;:::-;715:41;;795:1;780:11;:16;;;;770:26;;815:29;832:11;815:29;;;;;;;;;;;;;;;;;;;;;;582:273;472:383;313:548;;;;;;;;:::o;867:309::-;976:12;1158:1;1155;1148:4;1142:11;1135:4;1129;1125:15;1118:5;1114:2;1107:5;1102:58;1091:69;;1077:93;;;;;;:::o;1182:303::-;1284:12;1467:1;1464;1457:4;1451:11;1444:4;1438;1434:15;1430:2;1423:5;1410:59;1399:70;;1385:94;;;;;:::o;1491:261::-;1560:19;1730:4;1724:11;1717:4;1711;1707:15;1704:1;1697:39;1682:54;;1668:78;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./Module.sol\";\nimport \"./ModuleManager.sol\";\nimport \"./OwnerManager.sol\";\n\n\n/// @title Base Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n/// @author Stefan George - \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[] _owners, uint256 _threshold, address to, bytes data)\n internal\n {\n setupOwners(_owners, _threshold);\n // As setupOwners can only be called if the contract has not been initialized we don't need a check for setupModules\n setupModules(to, data);\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", "exportedSymbols": { "BaseSafe": [ - 782 + 863 ] }, - "id": 783, + "id": 864, "nodeType": "SourceUnit", "nodes": [ { - "id": 751, + "id": 832, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:2" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "./Module.sol", - "id": 752, + "id": 833, "nodeType": "ImportDirective", - "scope": 783, - "sourceUnit": 936, + "scope": 864, + "sourceUnit": 1021, "src": "24:22:2", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 753, + "id": 834, "nodeType": "ImportDirective", - "scope": 783, - "sourceUnit": 1213, + "scope": 864, + "sourceUnit": 1331, "src": "47:29:2", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", "file": "./OwnerManager.sol", - "id": 754, + "id": 835, "nodeType": "ImportDirective", - "scope": 783, - "sourceUnit": 1653, + "scope": 864, + "sourceUnit": 1797, "src": "77:28:2", "symbolAliases": [], "unitAlias": "" @@ -372,17 +373,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 755, + "id": 836, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1212, + "referencedDeclaration": 1330, "src": "392:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "id": 756, + "id": 837, "nodeType": "InheritanceSpecifier", "src": "392:13:2" }, @@ -390,48 +391,48 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 757, + "id": 838, "name": "OwnerManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1652, + "referencedDeclaration": 1796, "src": "407:12:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", + "typeIdentifier": "t_contract$_OwnerManager_$1796", "typeString": "contract OwnerManager" } }, - "id": 758, + "id": 839, "nodeType": "InheritanceSpecifier", "src": "407:12:2" } ], "contractDependencies": [ - 892, - 1212, - 1652, - 1666, - 1735 + 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": 782, + "id": 863, "linearizedBaseContracts": [ - 782, - 1652, - 1212, - 892, - 1666, - 1735 + 863, + 1796, + 1330, + 975, + 1810, + 1881 ], "name": "BaseSafe", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 780, + "id": 861, "nodeType": "Block", - "src": "843:206:2", + "src": "857:206:2", "statements": [ { "expression": { @@ -439,12 +440,12 @@ "arguments": [ { "argumentTypes": null, - "id": 771, + "id": 852, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "865:7:2", + "referencedDeclaration": 842, + "src": "879:7:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -452,12 +453,12 @@ }, { "argumentTypes": null, - "id": 772, + "id": 853, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 763, - "src": "874:10:2", + "referencedDeclaration": 844, + "src": "888:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -475,18 +476,18 @@ "typeString": "uint256" } ], - "id": 770, + "id": 851, "name": "setupOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "853:11:2", + "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": 773, + "id": 854, "isConstant": false, "isLValue": false, "isPure": false, @@ -494,15 +495,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "853:32:2", + "src": "867:32:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 774, + "id": 855, "nodeType": "ExpressionStatement", - "src": "853:32:2" + "src": "867:32:2" }, { "expression": { @@ -510,12 +511,12 @@ "arguments": [ { "argumentTypes": null, - "id": 776, + "id": 857, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "1033:2:2", + "referencedDeclaration": 846, + "src": "1047:2:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -523,12 +524,12 @@ }, { "argumentTypes": null, - "id": 777, + "id": 858, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "1037:4:2", + "referencedDeclaration": 848, + "src": "1051:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -546,18 +547,18 @@ "typeString": "bytes memory" } ], - "id": 775, + "id": 856, "name": "setupModules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "1020:12:2", + "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": 778, + "id": 859, "isConstant": false, "isLValue": false, "isPure": false, @@ -565,55 +566,55 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1020:22:2", + "src": "1034:22:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 779, + "id": 860, "nodeType": "ExpressionStatement", - "src": "1020:22:2" + "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": 781, + "id": 862, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setupSafe", "nodeType": "FunctionDefinition", "parameters": { - "id": 768, + "id": 849, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 761, + "id": 842, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 781, - "src": "759:17:2", + "scope": 862, + "src": "759:24:2", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 759, + "id": 840, "name": "address", "nodeType": "ElementaryTypeName", "src": "759:7:2", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 760, + "id": 841, "length": null, "nodeType": "ArrayTypeName", "src": "759:9:2", @@ -627,11 +628,11 @@ }, { "constant": false, - "id": 763, + "id": 844, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 781, - "src": "778:18:2", + "scope": 862, + "src": "785:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -639,10 +640,10 @@ "typeString": "uint256" }, "typeName": { - "id": 762, + "id": 843, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "778:7:2", + "src": "785:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -653,11 +654,11 @@ }, { "constant": false, - "id": 765, + "id": 846, "name": "to", "nodeType": "VariableDeclaration", - "scope": 781, - "src": "798:10:2", + "scope": 862, + "src": "805:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -665,10 +666,11 @@ "typeString": "address" }, "typeName": { - "id": 764, + "id": 845, "name": "address", "nodeType": "ElementaryTypeName", - "src": "798:7:2", + "src": "805:7:2", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -679,22 +681,22 @@ }, { "constant": false, - "id": 767, + "id": 848, "name": "data", "nodeType": "VariableDeclaration", - "scope": 781, - "src": "810:10:2", + "scope": 862, + "src": "817:17:2", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 766, + "id": 847, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "810:5:2", + "src": "817:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -704,77 +706,77 @@ "visibility": "internal" } ], - "src": "758:63:2" + "src": "758:77:2" }, - "payable": false, "returnParameters": { - "id": 769, + "id": 850, "nodeType": "ParameterList", "parameters": [], - "src": "843:0:2" + "src": "857:0:2" }, - "scope": 782, - "src": "740:309:2", + "scope": 863, + "src": "740:323:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 783, - "src": "371:680:2" + "scope": 864, + "src": "371:694:2" } ], - "src": "0:1052:2" + "src": "0:1066:2" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", "exportedSymbols": { "BaseSafe": [ - 782 + 863 ] }, - "id": 783, + "id": 864, "nodeType": "SourceUnit", "nodes": [ { - "id": 751, + "id": 832, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:2" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "./Module.sol", - "id": 752, + "id": 833, "nodeType": "ImportDirective", - "scope": 783, - "sourceUnit": 936, + "scope": 864, + "sourceUnit": 1021, "src": "24:22:2", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 753, + "id": 834, "nodeType": "ImportDirective", - "scope": 783, - "sourceUnit": 1213, + "scope": 864, + "sourceUnit": 1331, "src": "47:29:2", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", "file": "./OwnerManager.sol", - "id": 754, + "id": 835, "nodeType": "ImportDirective", - "scope": 783, - "sourceUnit": 1653, + "scope": 864, + "sourceUnit": 1797, "src": "77:28:2", "symbolAliases": [], "unitAlias": "" @@ -785,17 +787,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 755, + "id": 836, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1212, + "referencedDeclaration": 1330, "src": "392:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "id": 756, + "id": 837, "nodeType": "InheritanceSpecifier", "src": "392:13:2" }, @@ -803,48 +805,48 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 757, + "id": 838, "name": "OwnerManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1652, + "referencedDeclaration": 1796, "src": "407:12:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", + "typeIdentifier": "t_contract$_OwnerManager_$1796", "typeString": "contract OwnerManager" } }, - "id": 758, + "id": 839, "nodeType": "InheritanceSpecifier", "src": "407:12:2" } ], "contractDependencies": [ - 892, - 1212, - 1652, - 1666, - 1735 + 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": 782, + "id": 863, "linearizedBaseContracts": [ - 782, - 1652, - 1212, - 892, - 1666, - 1735 + 863, + 1796, + 1330, + 975, + 1810, + 1881 ], "name": "BaseSafe", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 780, + "id": 861, "nodeType": "Block", - "src": "843:206:2", + "src": "857:206:2", "statements": [ { "expression": { @@ -852,12 +854,12 @@ "arguments": [ { "argumentTypes": null, - "id": 771, + "id": 852, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "865:7:2", + "referencedDeclaration": 842, + "src": "879:7:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -865,12 +867,12 @@ }, { "argumentTypes": null, - "id": 772, + "id": 853, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 763, - "src": "874:10:2", + "referencedDeclaration": 844, + "src": "888:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -888,18 +890,18 @@ "typeString": "uint256" } ], - "id": 770, + "id": 851, "name": "setupOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "853:11:2", + "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": 773, + "id": 854, "isConstant": false, "isLValue": false, "isPure": false, @@ -907,15 +909,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "853:32:2", + "src": "867:32:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 774, + "id": 855, "nodeType": "ExpressionStatement", - "src": "853:32:2" + "src": "867:32:2" }, { "expression": { @@ -923,12 +925,12 @@ "arguments": [ { "argumentTypes": null, - "id": 776, + "id": 857, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "1033:2:2", + "referencedDeclaration": 846, + "src": "1047:2:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -936,12 +938,12 @@ }, { "argumentTypes": null, - "id": 777, + "id": 858, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "1037:4:2", + "referencedDeclaration": 848, + "src": "1051:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -959,18 +961,18 @@ "typeString": "bytes memory" } ], - "id": 775, + "id": 856, "name": "setupModules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "1020:12:2", + "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": 778, + "id": 859, "isConstant": false, "isLValue": false, "isPure": false, @@ -978,55 +980,55 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1020:22:2", + "src": "1034:22:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 779, + "id": 860, "nodeType": "ExpressionStatement", - "src": "1020:22:2" + "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": 781, + "id": 862, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setupSafe", "nodeType": "FunctionDefinition", "parameters": { - "id": 768, + "id": 849, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 761, + "id": 842, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 781, - "src": "759:17:2", + "scope": 862, + "src": "759:24:2", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 759, + "id": 840, "name": "address", "nodeType": "ElementaryTypeName", "src": "759:7:2", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 760, + "id": 841, "length": null, "nodeType": "ArrayTypeName", "src": "759:9:2", @@ -1040,11 +1042,11 @@ }, { "constant": false, - "id": 763, + "id": 844, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 781, - "src": "778:18:2", + "scope": 862, + "src": "785:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1052,10 +1054,10 @@ "typeString": "uint256" }, "typeName": { - "id": 762, + "id": 843, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "778:7:2", + "src": "785:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1066,11 +1068,11 @@ }, { "constant": false, - "id": 765, + "id": 846, "name": "to", "nodeType": "VariableDeclaration", - "scope": 781, - "src": "798:10:2", + "scope": 862, + "src": "805:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1078,10 +1080,11 @@ "typeString": "address" }, "typeName": { - "id": 764, + "id": 845, "name": "address", "nodeType": "ElementaryTypeName", - "src": "798:7:2", + "src": "805:7:2", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1092,22 +1095,22 @@ }, { "constant": false, - "id": 767, + "id": 848, "name": "data", "nodeType": "VariableDeclaration", - "scope": 781, - "src": "810:10:2", + "scope": 862, + "src": "817:17:2", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 766, + "id": 847, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "810:5:2", + "src": "817:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1117,33 +1120,32 @@ "visibility": "internal" } ], - "src": "758:63:2" + "src": "758:77:2" }, - "payable": false, "returnParameters": { - "id": 769, + "id": 850, "nodeType": "ParameterList", "parameters": [], - "src": "843:0:2" + "src": "857:0:2" }, - "scope": 782, - "src": "740:309:2", + "scope": 863, + "src": "740:323:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 783, - "src": "371:680:2" + "scope": 864, + "src": "371:694:2" } ], - "src": "0:1052:2" + "src": "0:1066:2" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.886Z" + "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 index 0bf38afd..80abd3d8 100644 --- a/safe-contracts/build/contracts/CreateAndAddModules.json +++ b/safe-contracts/build/contracts/CreateAndAddModules.json @@ -34,40 +34,41 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610275806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a72305820032b000033bdda6b988b435c96d1decf8e2f8e4da1b3a0b75e82e9e49c9c8dd10029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a72305820032b000033bdda6b988b435c96d1decf8e2f8e4da1b3a0b75e82e9e49c9c8dd10029", - "sourceMap": "250:1457:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;250:1457:14;;;;;;;", - "deployedSourceMap": "250:1457:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:885;;8:9:-1;5:2;;;30:1;27;20:12;5:2;820:885:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;410:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;410:81:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:885;912:14;950:13;973:9;929:4;:11;912:28;;985:1;973:13;;996:703;1007:6;1003:1;:10;996:703;;;1175:1;1169:4;1165:12;1159:4;1155:23;1149:30;1235:1;1229:4;1225:12;1219:4;1215:23;1276:4;1270:11;1383:1;1376:4;1368:6;1349:17;1336:11;1322:12;1317:3;1304:77;1301:84;1298:2;;;1398:1;1395;1388:12;1298:2;1448:42;1439:6;1433:13;1429:62;1419:72;;1629:4;1622;1615;1596:17;1592:28;1588:39;1584:50;1578:4;1574:61;1571:1;1567:69;1562:74;;1106:544;;;1663:4;:17;;;1681:6;1663:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1663:25:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1663:25:14;;;;996:703;;;820:885;;;;;:::o;410:81::-;476:8;;", - "source": "pragma solidity 0.4.24;\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 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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", "exportedSymbols": { "CreateAndAddModules": [ - 1848 + 2125 ] }, - "id": 1849, + "id": 2126, "nodeType": "SourceUnit", "nodes": [ { - "id": 1805, + "id": 2082, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:14" + "src": "0:23:15" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "../base/Module.sol", - "id": 1806, + "id": 2083, "nodeType": "ImportDirective", - "scope": 1849, - "sourceUnit": 936, - "src": "24:28:14", + "scope": 2126, + "sourceUnit": 1021, + "src": "24:28:15", "symbolAliases": [], "unitAlias": "" }, @@ -77,18 +78,18 @@ "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": 1848, + "id": 2125, "linearizedBaseContracts": [ - 1848 + 2125 ], "name": "CreateAndAddModules", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1814, + "id": 2091, "nodeType": "Block", - "src": "466:25:14", + "src": "466:25:15", "statements": [ { "expression": { @@ -96,21 +97,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1811, + "id": 2088, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4020, - "src": "476:6:14", + "referencedDeclaration": 4371, + "src": "476:6:15", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1812, + "id": 2089, "isConstant": false, "isLValue": false, "isPure": false, @@ -118,52 +119,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "476:8:14", + "src": "476:8:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1813, + "id": 2090, "nodeType": "ExpressionStatement", - "src": "476:8:14" + "src": "476:8:15" } ] }, "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 1815, + "id": 2092, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1809, + "id": 2086, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1808, + "id": 2085, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1815, - "src": "432:13:14", + "scope": 2092, + "src": "432:13:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1807, + "id": 2084, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "432:6:14", + "referencedDeclaration": 1020, + "src": "432:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, @@ -171,39 +171,38 @@ "visibility": "internal" } ], - "src": "431:15:14" + "src": "431:15:15" }, - "payable": false, "returnParameters": { - "id": 1810, + "id": 2087, "nodeType": "ParameterList", "parameters": [], - "src": "466:0:14" + "src": "466:0:15" }, - "scope": 1848, - "src": "410:81:14", + "scope": 2125, + "src": "410:81:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1846, + "id": 2123, "nodeType": "Block", - "src": "902:803:14", + "src": "909:803:15", "statements": [ { "assignments": [ - 1823 + 2100 ], "declarations": [ { "constant": false, - "id": 1823, + "id": 2100, "name": "length", "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "912:14:14", + "scope": 2123, + "src": "919:14:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -211,10 +210,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1822, + "id": 2099, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "912:7:14", + "src": "919:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -224,23 +223,23 @@ "visibility": "internal" } ], - "id": 1826, + "id": 2103, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1824, + "id": 2101, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "929:4:14", + "referencedDeclaration": 2096, + "src": "936:4:15", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1825, + "id": 2102, "isConstant": false, "isLValue": false, "isPure": false, @@ -248,40 +247,42 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "929:11:14", + "src": "936:11:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "912:28:14" + "src": "919:28:15" }, { - "assignments": [], + "assignments": [ + 2105 + ], "declarations": [ { "constant": false, - "id": 1828, + "id": 2105, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "950:13:14", + "scope": 2123, + "src": "957:13:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1827, + "id": 2104, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "950:6:14", + "referencedDeclaration": 1020, + "src": "957:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, @@ -289,23 +290,23 @@ "visibility": "internal" } ], - "id": 1829, + "id": 2106, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "950:13:14" + "src": "957:13:15" }, { "assignments": [ - 1831 + 2108 ], "declarations": [ { "constant": false, - "id": 1831, + "id": 2108, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "973:9:14", + "scope": 2123, + "src": "980:9:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -313,10 +314,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1830, + "id": 2107, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "973:7:14", + "src": "980:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -326,18 +327,18 @@ "visibility": "internal" } ], - "id": 1833, + "id": 2110, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1832, + "id": 2109, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "985:1:14", + "src": "992:1:15", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -346,93 +347,93 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "973:13:14" + "src": "980:13:15" }, { "body": { - "id": 1844, + "id": 2121, "nodeType": "Block", - "src": "1015:684:14", + "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": 1828, + "declaration": 2105, "isOffset": false, "isSlot": false, - "src": "1419:6:14", + "src": "1426:6:15", "valueSize": 1 } }, { "data": { - "declaration": 1819, + "declaration": 2096, "isOffset": false, "isSlot": false, - "src": "1169:4:14", + "src": "1236:4:15", "valueSize": 1 } }, { "i": { - "declaration": 1831, + "declaration": 2108, "isOffset": false, "isSlot": false, - "src": "1175:1:14", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1819, - "isOffset": false, - "isSlot": false, - "src": "1229:4:14", + "src": "1242:1:15", "valueSize": 1 } }, { "i": { - "declaration": 1831, + "declaration": 2108, "isOffset": false, "isSlot": false, - "src": "1235:1:14", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 1831, - "isOffset": false, - "isSlot": false, - "src": "1562:1:14", + "src": "1578:1:15", "valueSize": 1 } }, { "proxyFactory": { - "declaration": 1817, + "declaration": 2094, "isOffset": false, "isSlot": false, - "src": "1322:12:14", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 1831, - "isOffset": false, - "isSlot": false, - "src": "1571:1:14", + "src": "1329:12:15", "valueSize": 1 } } ], - "id": 1837, + "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": "1097:570:14" + "src": "1104:570:15" }, { "expression": { @@ -440,14 +441,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1841, + "id": 2118, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1828, - "src": "1681:6:14", + "referencedDeclaration": 2105, + "src": "1688:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -455,38 +456,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], "expression": { "argumentTypes": null, - "id": 1838, + "id": 2115, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4056, - "src": "1663:4:14", + "referencedDeclaration": 4410, + "src": "1670:4:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModules_$1848", + "typeIdentifier": "t_contract$_CreateAndAddModules_$2125", "typeString": "contract CreateAndAddModules" } }, - "id": 1840, + "id": 2117, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "enableModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1815, - "src": "1663:17:14", + "referencedDeclaration": 2092, + "src": "1670:17:15", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$935_$returns$__$", + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$1020_$returns$__$", "typeString": "function (contract Module) external" } }, - "id": 1842, + "id": 2119, "isConstant": false, "isLValue": false, "isPure": false, @@ -494,15 +495,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1663:25:14", + "src": "1670:25:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1843, + "id": 2120, "nodeType": "ExpressionStatement", - "src": "1663:25:14" + "src": "1670:25:15" } ] }, @@ -512,19 +513,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1836, + "id": 2113, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1834, + "id": 2111, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "1003:1:14", + "referencedDeclaration": 2108, + "src": "1010:1:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -534,48 +535,47 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 1835, + "id": 2112, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "1007:6:14", + "referencedDeclaration": 2100, + "src": "1014:6:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1003:10:14", + "src": "1010:10:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1845, + "id": 2122, "nodeType": "WhileStatement", - "src": "996:703:14" + "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": 1847, + "id": 2124, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "createAndAddModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 1820, + "id": 2097, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1817, + "id": 2094, "name": "proxyFactory", "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "849:20:14", + "scope": 2124, + "src": "849:20:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -583,10 +583,11 @@ "typeString": "address" }, "typeName": { - "id": 1816, + "id": 2093, "name": "address", "nodeType": "ElementaryTypeName", - "src": "849:7:14", + "src": "849:7:15", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -597,22 +598,22 @@ }, { "constant": false, - "id": 1819, + "id": 2096, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "871:10:14", + "scope": 2124, + "src": "871:17:15", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 1818, + "id": 2095, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "871:5:14", + "src": "871:5:15", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -622,56 +623,56 @@ "visibility": "internal" } ], - "src": "848:34:14" + "src": "848:41:15" }, - "payable": false, "returnParameters": { - "id": 1821, + "id": 2098, "nodeType": "ParameterList", "parameters": [], - "src": "902:0:14" + "src": "909:0:15" }, - "scope": 1848, - "src": "820:885:14", + "scope": 2125, + "src": "820:892:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1849, - "src": "250:1457:14" + "scope": 2126, + "src": "250:1464:15" } ], - "src": "0:1708:14" + "src": "0:1715:15" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", "exportedSymbols": { "CreateAndAddModules": [ - 1848 + 2125 ] }, - "id": 1849, + "id": 2126, "nodeType": "SourceUnit", "nodes": [ { - "id": 1805, + "id": 2082, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:14" + "src": "0:23:15" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "../base/Module.sol", - "id": 1806, + "id": 2083, "nodeType": "ImportDirective", - "scope": 1849, - "sourceUnit": 936, - "src": "24:28:14", + "scope": 2126, + "sourceUnit": 1021, + "src": "24:28:15", "symbolAliases": [], "unitAlias": "" }, @@ -681,18 +682,18 @@ "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": 1848, + "id": 2125, "linearizedBaseContracts": [ - 1848 + 2125 ], "name": "CreateAndAddModules", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1814, + "id": 2091, "nodeType": "Block", - "src": "466:25:14", + "src": "466:25:15", "statements": [ { "expression": { @@ -700,21 +701,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1811, + "id": 2088, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4020, - "src": "476:6:14", + "referencedDeclaration": 4371, + "src": "476:6:15", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1812, + "id": 2089, "isConstant": false, "isLValue": false, "isPure": false, @@ -722,52 +723,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "476:8:14", + "src": "476:8:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1813, + "id": 2090, "nodeType": "ExpressionStatement", - "src": "476:8:14" + "src": "476:8:15" } ] }, "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 1815, + "id": 2092, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1809, + "id": 2086, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1808, + "id": 2085, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1815, - "src": "432:13:14", + "scope": 2092, + "src": "432:13:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1807, + "id": 2084, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "432:6:14", + "referencedDeclaration": 1020, + "src": "432:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, @@ -775,39 +775,38 @@ "visibility": "internal" } ], - "src": "431:15:14" + "src": "431:15:15" }, - "payable": false, "returnParameters": { - "id": 1810, + "id": 2087, "nodeType": "ParameterList", "parameters": [], - "src": "466:0:14" + "src": "466:0:15" }, - "scope": 1848, - "src": "410:81:14", + "scope": 2125, + "src": "410:81:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1846, + "id": 2123, "nodeType": "Block", - "src": "902:803:14", + "src": "909:803:15", "statements": [ { "assignments": [ - 1823 + 2100 ], "declarations": [ { "constant": false, - "id": 1823, + "id": 2100, "name": "length", "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "912:14:14", + "scope": 2123, + "src": "919:14:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -815,10 +814,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1822, + "id": 2099, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "912:7:14", + "src": "919:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -828,23 +827,23 @@ "visibility": "internal" } ], - "id": 1826, + "id": 2103, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1824, + "id": 2101, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "929:4:14", + "referencedDeclaration": 2096, + "src": "936:4:15", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1825, + "id": 2102, "isConstant": false, "isLValue": false, "isPure": false, @@ -852,40 +851,42 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "929:11:14", + "src": "936:11:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "912:28:14" + "src": "919:28:15" }, { - "assignments": [], + "assignments": [ + 2105 + ], "declarations": [ { "constant": false, - "id": 1828, + "id": 2105, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "950:13:14", + "scope": 2123, + "src": "957:13:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1827, + "id": 2104, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "950:6:14", + "referencedDeclaration": 1020, + "src": "957:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, @@ -893,23 +894,23 @@ "visibility": "internal" } ], - "id": 1829, + "id": 2106, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "950:13:14" + "src": "957:13:15" }, { "assignments": [ - 1831 + 2108 ], "declarations": [ { "constant": false, - "id": 1831, + "id": 2108, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "973:9:14", + "scope": 2123, + "src": "980:9:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -917,10 +918,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1830, + "id": 2107, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "973:7:14", + "src": "980:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -930,18 +931,18 @@ "visibility": "internal" } ], - "id": 1833, + "id": 2110, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1832, + "id": 2109, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "985:1:14", + "src": "992:1:15", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -950,93 +951,93 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "973:13:14" + "src": "980:13:15" }, { "body": { - "id": 1844, + "id": 2121, "nodeType": "Block", - "src": "1015:684:14", + "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": 1828, + "declaration": 2105, "isOffset": false, "isSlot": false, - "src": "1419:6:14", + "src": "1426:6:15", "valueSize": 1 } }, { "data": { - "declaration": 1819, + "declaration": 2096, "isOffset": false, "isSlot": false, - "src": "1169:4:14", + "src": "1236:4:15", "valueSize": 1 } }, { "i": { - "declaration": 1831, + "declaration": 2108, "isOffset": false, "isSlot": false, - "src": "1175:1:14", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1819, - "isOffset": false, - "isSlot": false, - "src": "1229:4:14", + "src": "1242:1:15", "valueSize": 1 } }, { "i": { - "declaration": 1831, + "declaration": 2108, "isOffset": false, "isSlot": false, - "src": "1235:1:14", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 1831, - "isOffset": false, - "isSlot": false, - "src": "1562:1:14", + "src": "1578:1:15", "valueSize": 1 } }, { "proxyFactory": { - "declaration": 1817, + "declaration": 2094, "isOffset": false, "isSlot": false, - "src": "1322:12:14", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 1831, - "isOffset": false, - "isSlot": false, - "src": "1571:1:14", + "src": "1329:12:15", "valueSize": 1 } } ], - "id": 1837, + "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": "1097:570:14" + "src": "1104:570:15" }, { "expression": { @@ -1044,14 +1045,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1841, + "id": 2118, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1828, - "src": "1681:6:14", + "referencedDeclaration": 2105, + "src": "1688:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -1059,38 +1060,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], "expression": { "argumentTypes": null, - "id": 1838, + "id": 2115, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4056, - "src": "1663:4:14", + "referencedDeclaration": 4410, + "src": "1670:4:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModules_$1848", + "typeIdentifier": "t_contract$_CreateAndAddModules_$2125", "typeString": "contract CreateAndAddModules" } }, - "id": 1840, + "id": 2117, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "enableModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1815, - "src": "1663:17:14", + "referencedDeclaration": 2092, + "src": "1670:17:15", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$935_$returns$__$", + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$1020_$returns$__$", "typeString": "function (contract Module) external" } }, - "id": 1842, + "id": 2119, "isConstant": false, "isLValue": false, "isPure": false, @@ -1098,15 +1099,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1663:25:14", + "src": "1670:25:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1843, + "id": 2120, "nodeType": "ExpressionStatement", - "src": "1663:25:14" + "src": "1670:25:15" } ] }, @@ -1116,19 +1117,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1836, + "id": 2113, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1834, + "id": 2111, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "1003:1:14", + "referencedDeclaration": 2108, + "src": "1010:1:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1138,48 +1139,47 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 1835, + "id": 2112, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "1007:6:14", + "referencedDeclaration": 2100, + "src": "1014:6:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1003:10:14", + "src": "1010:10:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1845, + "id": 2122, "nodeType": "WhileStatement", - "src": "996:703:14" + "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": 1847, + "id": 2124, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "createAndAddModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 1820, + "id": 2097, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1817, + "id": 2094, "name": "proxyFactory", "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "849:20:14", + "scope": 2124, + "src": "849:20:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1187,10 +1187,11 @@ "typeString": "address" }, "typeName": { - "id": 1816, + "id": 2093, "name": "address", "nodeType": "ElementaryTypeName", - "src": "849:7:14", + "src": "849:7:15", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1201,22 +1202,22 @@ }, { "constant": false, - "id": 1819, + "id": 2096, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "871:10:14", + "scope": 2124, + "src": "871:17:15", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 1818, + "id": 2095, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "871:5:14", + "src": "871:5:15", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1226,46 +1227,57 @@ "visibility": "internal" } ], - "src": "848:34:14" + "src": "848:41:15" }, - "payable": false, "returnParameters": { - "id": 1821, + "id": 2098, "nodeType": "ParameterList", "parameters": [], - "src": "902:0:14" + "src": "909:0:15" }, - "scope": 1848, - "src": "820:885:14", + "scope": 2125, + "src": "820:892:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1849, - "src": "250:1457:14" + "scope": 2126, + "src": "250:1464:15" } ], - "src": "0:1708:14" + "src": "0:1715:15" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": { - "4": { - "events": {}, + "1": { "links": {}, - "address": "0xdf596548e089729535b171d13dec6e510cd22de4", - "transactionHash": "0x8da8ec46f7fd0935a74170caa40eaf18b29e88607b21273c232a09b7a7251d34" + "events": {}, + "address": "0x1a56aE690ab0818aF5cA349b7D21f1d7e76a3d36", + "updated_at": 1555073253732 }, - "1538739975997": { - "events": {}, + "4": { "links": {}, - "address": "0xa57b8a5584442b467b4689f1144d269d096a3daf", - "transactionHash": "0xbab48fcde913e539ed8f71571e7f0abe2507e0322c9dda28780e5227e7d31d30" + "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.0", - "updatedAt": "2018-10-05T14:43:41.423Z" + "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 index ef2eaf04..89fe95f0 100644 --- a/safe-contracts/build/contracts/DailyLimitModule.json +++ b/safe-contracts/build/contracts/DailyLimitModule.json @@ -157,73 +157,74 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061129b806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a72305820c9fff2d2f4e7a988305f955b24a67b14ce9f8eb1e561d62a099c2c918f82fd300029", - "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a72305820c9fff2d2f4e7a988305f955b24a67b14ce9f8eb1e561d62a099c2c918f82fd300029", - "sourceMap": "318:3283:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;318:3283:17;;;;;;;", - "deployedSourceMap": "318:3283:17:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;940:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;940:222:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:987:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1912:987:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1390:158:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1390:158:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;361:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;361:50:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3483:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3483:116:17;;;;;;;;;;;;;;;;;;;;;;;535:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;535:50:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;417:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;417:40:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;940:222;1053:9;1026:12;:10;:12::i;:::-;1065:1;1053:13;;1048:107;1072:6;:13;1068:1;:17;1048:107;;;1140:12;1153:1;1140:15;;;;;;;;;;;;;;;;;;1104:11;:22;1116:6;1123:1;1116:9;;;;;;;;;;;;;;;;;;1104:22;;;;;;;;;;;;;;;:33;;:51;;;;1087:3;;;;;;;1048:107;;;940:222;;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;1912:987:17:-;2669:17;2109:7;;;;;;;;;;;2096:29;;;2126:10;2096:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2096:41:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2096:41:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2096:41:17;;;;;;;;;;;;;;;;2088:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2203:1;2197:2;:7;;;;2189:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2263:1;2254:6;:10;2246:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2374:27;2387:5;2394:6;2374:12;:27::i;:::-;2366:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2477:6;2444:11;:18;2456:5;2444:18;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;2506:1;2497:5;:10;;;2493:400;;;2531:7;;;;;;;;;;;:33;;;2565:2;2569:6;2581:19;2531:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2531:70:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2531:70:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2531:70:17;;;;;;;;;;;;;;;;2523:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2493:400;;;2742:2;2746:6;2689:64;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2689:64:17;;;;;;;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;;;2689:64:17;2669:84;;2775:7;;;;;;;;;;;:33;;;2809:5;2816:1;2819:4;2825:19;2775: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;2775:70:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2775:70:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2775:70:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2775:70:17;;;;;;;;;;;;;;;;2767:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2493:400;1912:987;;;;:::o;626:248:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1390:158:17:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:10:17;1499:11;:18;1511:5;1499:18;;;;;;;;;;;;;;;:29;;:42;;;;1390:158;;:::o;361:50::-;;;;;;;;;;;;;;;;;;;;:::o;3483:116::-;3545:4;3585:6;3579:3;:12;;;;;;;;3572:3;:20;3565:27;;3483:116;:::o;535:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;417:40::-;;;;;;;;;;;;;;;;;;;;:::o;442:300:4:-;656:1;644:7;;;;;;;;;;;636:21;;;628:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;724:10;700:7;;:35;;;;;;;;;;;;;;;;;;442:300::o;2905:486:17:-;2992:4;3012:29;3044:11;:18;3056:5;3044:18;;;;;;;;;;;;;;;3012:50;;3086:10;:18;;;3076:7;:5;:7::i;:::-;:28;3072:126;;;3141:7;:5;:7::i;:::-;3120:10;:18;;:28;;;;3186:1;3162:10;:21;;:25;;;;3072:126;3245:10;:21;;;3235:6;3211:10;:21;;;:30;:55;;:126;;;;;3316:10;:21;;;3307:6;3283:10;:21;;;:30;:54;3211:126;3207:155;;;3358:4;3351:11;;;;3207:155;3379:5;3372:12;;2905:486;;;;;;:::o", - "source": "pragma solidity 0.4.24;\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.0.2\";\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[] tokens, uint256[] _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(manager).isOwner(msg.sender), \"Method can only be called by an owner\");\n require(to != 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 == 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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", "exportedSymbols": { "DailyLimitModule": [ - 2110 + 2393 ] }, - "id": 2111, + "id": 2394, "nodeType": "SourceUnit", "nodes": [ { - "id": 1873, + "id": 2150, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:17" + "src": "0:23:18" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "../base/Module.sol", - "id": 1874, + "id": 2151, "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 936, - "src": "24:28:17", + "scope": 2394, + "sourceUnit": 1021, + "src": "24:28:18", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "file": "../base/ModuleManager.sol", - "id": 1875, + "id": 2152, "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 1213, - "src": "53:35:17", + "scope": 2394, + "sourceUnit": 1331, + "src": "53:35:18", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", "file": "../base/OwnerManager.sol", - "id": 1876, + "id": 2153, "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 1653, - "src": "89:34:17", + "scope": 2394, + "sourceUnit": 1797, + "src": "89:34:18", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", "file": "../common/Enum.sol", - "id": 1877, + "id": 2154, "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 1660, - "src": "124:28:17", + "scope": 2394, + "sourceUnit": 1804, + "src": "124:28:18", "symbolAliases": [], "unitAlias": "" }, @@ -233,46 +234,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1878, + "id": 2155, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "347:6:17", + "referencedDeclaration": 1020, + "src": "347:6:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, - "id": 1879, + "id": 2156, "nodeType": "InheritanceSpecifier", - "src": "347:6:17" + "src": "347:6:18" } ], "contractDependencies": [ - 935, - 1693, - 1735 + 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": 2110, + "id": 2393, "linearizedBaseContracts": [ - 2110, - 935, - 1693, - 1735 + 2393, + 1020, + 1839, + 1881 ], "name": "DailyLimitModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1882, + "id": 2159, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "361:50:17", + "scope": 2393, + "src": "361:50:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -280,10 +281,10 @@ "typeString": "string" }, "typeName": { - "id": 1880, + "id": 2157, "name": "string", "nodeType": "ElementaryTypeName", - "src": "361:6:17", + "src": "361:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -292,14 +293,14 @@ "value": { "argumentTypes": null, "hexValue": "4461696c79204c696d6974204d6f64756c65", - "id": 1881, + "id": 2158, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "391:20:17", + "src": "391:20:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_821ea27acfbc77b49f7a021dbe2eb92017d46b8bdda0bff9901cbc8ee143ceb3", @@ -311,11 +312,11 @@ }, { "constant": true, - "id": 1885, + "id": 2162, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "417:40:17", + "scope": 2393, + "src": "417:40:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -323,10 +324,10 @@ "typeString": "string" }, "typeName": { - "id": 1883, + "id": 2160, "name": "string", "nodeType": "ElementaryTypeName", - "src": "417:6:17", + "src": "417:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -334,64 +335,64 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e32", - "id": 1884, + "hexValue": "302e312e30", + "id": 2161, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "450:7:17", + "src": "450:7:18", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" + "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", + "typeString": "literal_string \"0.1.0\"" }, - "value": "0.0.2" + "value": "0.1.0" }, "visibility": "public" }, { "constant": false, - "id": 1889, + "id": 2166, "name": "dailyLimits", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "535:50:17", + "scope": 2393, + "src": "535:50:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "typeName": { - "id": 1888, + "id": 2165, "keyType": { - "id": 1886, + "id": 2163, "name": "address", "nodeType": "ElementaryTypeName", - "src": "544:7:17", + "src": "544:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "535:31:17", + "src": "535:31:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "valueType": { "contractScope": null, - "id": 1887, + "id": 2164, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1896, - "src": "555:10:17", + "referencedDeclaration": 2173, + "src": "555:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } } @@ -401,15 +402,15 @@ }, { "canonicalName": "DailyLimitModule.DailyLimit", - "id": 1896, + "id": 2173, "members": [ { "constant": false, - "id": 1891, + "id": 2168, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1896, - "src": "620:18:17", + "scope": 2173, + "src": "620:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -417,10 +418,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1890, + "id": 2167, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "620:7:17", + "src": "620:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -431,11 +432,11 @@ }, { "constant": false, - "id": 1893, + "id": 2170, "name": "spentToday", "nodeType": "VariableDeclaration", - "scope": 1896, - "src": "648:18:17", + "scope": 2173, + "src": "648:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -443,10 +444,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1892, + "id": 2169, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "648:7:17", + "src": "648:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -457,11 +458,11 @@ }, { "constant": false, - "id": 1895, + "id": 2172, "name": "lastDay", "nodeType": "VariableDeclaration", - "scope": 1896, - "src": "676:15:17", + "scope": 2173, + "src": "676:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -469,10 +470,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1894, + "id": 2171, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "676:7:17", + "src": "676:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -484,15 +485,15 @@ ], "name": "DailyLimit", "nodeType": "StructDefinition", - "scope": 2110, - "src": "592:106:17", + "scope": 2393, + "src": "592:106:18", "visibility": "public" }, { "body": { - "id": 1931, + "id": 2208, "nodeType": "Block", - "src": "1016:146:17", + "src": "1030:146:18", "statements": [ { "expression": { @@ -500,18 +501,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1905, + "id": 2182, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "1026:10:17", + "referencedDeclaration": 1019, + "src": "1040:10:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1906, + "id": 2183, "isConstant": false, "isLValue": false, "isPure": false, @@ -519,21 +520,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1026:12:17", + "src": "1040:12:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1907, + "id": 2184, "nodeType": "ExpressionStatement", - "src": "1026:12:17" + "src": "1040:12:18" }, { "body": { "expression": { "argumentTypes": null, - "id": 1928, + "id": 2205, "isConstant": false, "isLValue": false, "isPure": false, @@ -544,42 +545,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1919, + "id": 2196, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "1104:11:17", + "referencedDeclaration": 2166, + "src": "1118:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1923, + "id": 2200, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1920, + "id": 2197, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1899, - "src": "1116:6:17", + "referencedDeclaration": 2176, + "src": "1130:6:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1922, + "id": 2199, "indexExpression": { "argumentTypes": null, - "id": 1921, + "id": 2198, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1123:1:17", + "referencedDeclaration": 2186, + "src": "1137:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -590,7 +591,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1116:9:17", + "src": "1130:9:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -601,21 +602,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1104:22:17", + "src": "1118:22:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1924, + "id": 2201, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1891, - "src": "1104:33:17", + "referencedDeclaration": 2168, + "src": "1118:33:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -627,26 +628,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1925, + "id": 2202, "name": "_dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1902, - "src": "1140:12:17", + "referencedDeclaration": 2179, + "src": "1154:12:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1927, + "id": 2204, "indexExpression": { "argumentTypes": null, - "id": 1926, + "id": 2203, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1153:1:17", + "referencedDeclaration": 2186, + "src": "1167:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -657,21 +658,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1140:15:17", + "src": "1154:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1104:51:17", + "src": "1118:51:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1929, + "id": 2206, "nodeType": "ExpressionStatement", - "src": "1104:51:17" + "src": "1118:51:18" }, "condition": { "argumentTypes": null, @@ -679,19 +680,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1915, + "id": 2192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1912, + "id": 2189, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1068:1:17", + "referencedDeclaration": 2186, + "src": "1082:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -703,18 +704,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1913, + "id": 2190, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1899, - "src": "1072:6:17", + "referencedDeclaration": 2176, + "src": "1086:6:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1914, + "id": 2191, "isConstant": false, "isLValue": false, "isPure": false, @@ -722,31 +723,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1072:13:17", + "src": "1086:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1068:17:17", + "src": "1082:17:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1930, + "id": 2207, "initializationExpression": { "assignments": [ - 1909 + 2186 ], "declarations": [ { "constant": false, - "id": 1909, + "id": 2186, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1932, - "src": "1053:9:17", + "scope": 2207, + "src": "1067:9:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -754,10 +755,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1908, + "id": 2185, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1053:7:17", + "src": "1067:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -767,18 +768,18 @@ "visibility": "internal" } ], - "id": 1911, + "id": 2188, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1910, + "id": 2187, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1065:1:17", + "src": "1079:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -787,12 +788,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1053:13:17" + "src": "1067:13:18" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1917, + "id": 2194, "isConstant": false, "isLValue": false, "isPure": false, @@ -800,15 +801,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1087:3:17", + "src": "1101:3:18", "subExpression": { "argumentTypes": null, - "id": 1916, + "id": 2193, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1087:1:17", + "referencedDeclaration": 2186, + "src": "1101:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -819,55 +820,55 @@ "typeString": "uint256" } }, - "id": 1918, + "id": 2195, "nodeType": "ExpressionStatement", - "src": "1087:3:17" + "src": "1101:3:18" }, "nodeType": "ForStatement", - "src": "1048:107:17" + "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": 1932, + "id": 2209, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 1903, + "id": 2180, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1899, + "id": 2176, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 1932, - "src": "955:16:17", + "scope": 2209, + "src": "955:23:18", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 1897, + "id": 2174, "name": "address", "nodeType": "ElementaryTypeName", - "src": "955:7:17", + "src": "955:7:18", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1898, + "id": 2175, "length": null, "nodeType": "ArrayTypeName", - "src": "955:9:17", + "src": "955:9:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -878,32 +879,32 @@ }, { "constant": false, - "id": 1902, + "id": 2179, "name": "_dailyLimits", "nodeType": "VariableDeclaration", - "scope": 1932, - "src": "973:22:17", + "scope": 2209, + "src": "980:29:18", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { - "id": 1900, + "id": 2177, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "973:7:17", + "src": "980:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1901, + "id": 2178, "length": null, "nodeType": "ArrayTypeName", - "src": "973:9:17", + "src": "980:9:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -913,31 +914,30 @@ "visibility": "internal" } ], - "src": "954:42:17" + "src": "954:56:18" }, - "payable": false, "returnParameters": { - "id": 1904, + "id": 2181, "nodeType": "ParameterList", "parameters": [], - "src": "1016:0:17" + "src": "1030:0:18" }, - "scope": 2110, - "src": "940:222:17", + "scope": 2393, + "src": "940:236:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1948, + "id": 2225, "nodeType": "Block", - "src": "1489:59:17", + "src": "1503:59:18", "statements": [ { "expression": { "argumentTypes": null, - "id": 1946, + "id": 2223, "isConstant": false, "isLValue": false, "isPure": false, @@ -948,26 +948,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1941, + "id": 2218, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "1499:11:17", + "referencedDeclaration": 2166, + "src": "1513:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1943, + "id": 2220, "indexExpression": { "argumentTypes": null, - "id": 1942, + "id": 2219, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1934, - "src": "1511:5:17", + "referencedDeclaration": 2211, + "src": "1525:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -978,21 +978,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1499:18:17", + "src": "1513:18:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1944, + "id": 2221, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1891, - "src": "1499:29:17", + "referencedDeclaration": 2168, + "src": "1513:29:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1002,68 +1002,67 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1945, + "id": 2222, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "1531:10:17", + "referencedDeclaration": 2213, + "src": "1545:10:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1499:42:17", + "src": "1513:42:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1947, + "id": 2224, "nodeType": "ExpressionStatement", - "src": "1499:42:17" + "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": 1949, + "id": 2226, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1939, + "id": 2216, "modifierName": { "argumentTypes": null, - "id": 1938, + "id": 2215, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "1474:10:17", + "referencedDeclaration": 997, + "src": "1488:10:18", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1474:10:17" + "src": "1488:10:18" } ], "name": "changeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1937, + "id": 2214, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1934, + "id": 2211, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1949, - "src": "1416:13:17", + "scope": 2226, + "src": "1430:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1071,10 +1070,11 @@ "typeString": "address" }, "typeName": { - "id": 1933, + "id": 2210, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1416:7:17", + "src": "1430:7:18", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1085,11 +1085,11 @@ }, { "constant": false, - "id": 1936, + "id": 2213, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1949, - "src": "1431:18:17", + "scope": 2226, + "src": "1445:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1097,10 +1097,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1935, + "id": 2212, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1431:7:17", + "src": "1445:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1110,26 +1110,25 @@ "visibility": "internal" } ], - "src": "1415:35:17" + "src": "1429:35:18" }, - "payable": false, "returnParameters": { - "id": 1940, + "id": 2217, "nodeType": "ParameterList", "parameters": [], - "src": "1489:0:17" + "src": "1503:0:18" }, - "scope": 2110, - "src": "1390:158:17", + "scope": 2393, + "src": "1404:158:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2039, + "id": 2322, "nodeType": "Block", - "src": "2001:898:17", + "src": "2015:925:18", "statements": [ { "expression": { @@ -1142,18 +1141,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1963, + "id": 2242, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "2126:3:17", + "referencedDeclaration": 4366, + "src": "2149:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1964, + "id": 2243, "isConstant": false, "isLValue": false, "isPure": false, @@ -1161,18 +1160,18 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2126:10:17", + "src": "2149:10:18", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], "expression": { @@ -1180,37 +1179,75 @@ "arguments": [ { "argumentTypes": null, - "id": 1960, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2109:7:17", + "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_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], - "id": 1959, + "id": 2236, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2096:12:17", + "referencedDeclaration": 1796, + "src": "2110:12:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", "typeString": "type(contract OwnerManager)" } }, - "id": 1961, + "id": 2240, "isConstant": false, "isLValue": false, "isPure": false, @@ -1218,27 +1255,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2096:21:17", + "src": "2110:30:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", + "typeIdentifier": "t_contract$_OwnerManager_$1796", "typeString": "contract OwnerManager" } }, - "id": 1962, + "id": 2241, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1602, - "src": "2096:29:17", + "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": 1965, + "id": 2244, "isConstant": false, "isLValue": false, "isPure": false, @@ -1246,7 +1283,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2096:41:17", + "src": "2110:50:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1255,14 +1292,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 1966, + "id": 2245, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2139:39:17", + "src": "2162:39:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", @@ -1282,21 +1319,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 1958, + "id": 2235, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2088:7:17", + "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": 1967, + "id": 2246, "isConstant": false, "isLValue": false, "isPure": false, @@ -1304,15 +1341,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2088:91:17", + "src": "2102:100:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1968, + "id": 2247, "nodeType": "ExpressionStatement", - "src": "2088:91:17" + "src": "2102:100:18" }, { "expression": { @@ -1324,19 +1361,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1972, + "id": 2253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1970, + "id": 2249, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1953, - "src": "2197:2:17", + "referencedDeclaration": 2230, + "src": "2220:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1346,23 +1383,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1971, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "2203:1:17", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2226:10:18", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "2197:7:17", + "src": "2220:16:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1371,14 +1446,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420746f20616464726573732070726f7669646564", - "id": 1973, + "id": 2254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2206:29:17", + "src": "2238:29:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1", @@ -1398,21 +1473,21 @@ "typeString": "literal_string \"Invalid to address provided\"" } ], - "id": 1969, + "id": 2248, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2189:7:17", + "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": 1974, + "id": 2255, "isConstant": false, "isLValue": false, "isPure": false, @@ -1420,15 +1495,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2189:47:17", + "src": "2212:56:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1975, + "id": 2256, "nodeType": "ExpressionStatement", - "src": "2189:47:17" + "src": "2212:56:18" }, { "expression": { @@ -1440,19 +1515,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1979, + "id": 2260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1977, + "id": 2258, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2254:6:17", + "referencedDeclaration": 2232, + "src": "2286:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1463,14 +1538,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1978, + "id": 2259, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2263:1:17", + "src": "2295:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1478,7 +1553,7 @@ }, "value": "0" }, - "src": "2254:10:17", + "src": "2286:10:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1487,14 +1562,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420616d6f756e742070726f7669646564", - "id": 1980, + "id": 2261, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2266:25:17", + "src": "2298:25:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f", @@ -1514,21 +1589,21 @@ "typeString": "literal_string \"Invalid amount provided\"" } ], - "id": 1976, + "id": 2257, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2246:7:17", + "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": 1981, + "id": 2262, "isConstant": false, "isLValue": false, "isPure": false, @@ -1536,15 +1611,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2246:46:17", + "src": "2278:46:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1982, + "id": 2263, "nodeType": "ExpressionStatement", - "src": "2246:46:17" + "src": "2278:46:18" }, { "expression": { @@ -1555,12 +1630,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1985, + "id": 2266, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2387:5:17", + "referencedDeclaration": 2228, + "src": "2419:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1568,12 +1643,12 @@ }, { "argumentTypes": null, - "id": 1986, + "id": 2267, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2394:6:17", + "referencedDeclaration": 2232, + "src": "2426:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1591,18 +1666,18 @@ "typeString": "uint256" } ], - "id": 1984, + "id": 2265, "name": "isUnderLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2096, - "src": "2374:12:17", + "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": 1987, + "id": 2268, "isConstant": false, "isLValue": false, "isPure": false, @@ -1610,7 +1685,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2374:27:17", + "src": "2406:27:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1619,14 +1694,14 @@ { "argumentTypes": null, "hexValue": "4461696c79206c696d697420686173206265656e2072656163686564", - "id": 1988, + "id": 2269, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2403:30:17", + "src": "2435:30:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905", @@ -1646,21 +1721,21 @@ "typeString": "literal_string \"Daily limit has been reached\"" } ], - "id": 1983, + "id": 2264, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2366:7:17", + "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": 1989, + "id": 2270, "isConstant": false, "isLValue": false, "isPure": false, @@ -1668,20 +1743,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2366:68:17", + "src": "2398:68:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1990, + "id": 2271, "nodeType": "ExpressionStatement", - "src": "2366:68:17" + "src": "2398:68:18" }, { "expression": { "argumentTypes": null, - "id": 1996, + "id": 2277, "isConstant": false, "isLValue": false, "isPure": false, @@ -1692,26 +1767,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1991, + "id": 2272, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "2444:11:17", + "referencedDeclaration": 2166, + "src": "2476:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1993, + "id": 2274, "indexExpression": { "argumentTypes": null, - "id": 1992, + "id": 2273, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2456:5:17", + "referencedDeclaration": 2228, + "src": "2488:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1722,21 +1797,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2444:18:17", + "src": "2476:18:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1994, + "id": 2275, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "2444:29:17", + "referencedDeclaration": 2170, + "src": "2476:29:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1746,26 +1821,26 @@ "operator": "+=", "rightHandSide": { "argumentTypes": null, - "id": 1995, + "id": 2276, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2477:6:17", + "referencedDeclaration": 2232, + "src": "2509:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2444:39:17", + "src": "2476:39:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1997, + "id": 2278, "nodeType": "ExpressionStatement", - "src": "2444:39:17" + "src": "2476:39:18" }, { "condition": { @@ -1774,19 +1849,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2000, + "id": 2283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1998, + "id": 2279, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2497:5:17", + "referencedDeclaration": 2228, + "src": "2529:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1796,45 +1871,83 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1999, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "2506:1:17", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2538:10:18", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "2497:10:17", + "src": "2529:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2037, + "id": 2320, "nodeType": "Block", - "src": "2655:238:17", + "src": "2696:238:18", "statements": [ { "assignments": [ - 2016 + 2299 ], "declarations": [ { "constant": false, - "id": 2016, + "id": 2299, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "2669:17:17", + "scope": 2320, + "src": "2710:17:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1842,10 +1955,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2015, + "id": 2298, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2669:5:17", + "src": "2710:5:18", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1855,21 +1968,21 @@ "visibility": "internal" } ], - "id": 2023, + "id": 2306, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 2019, + "id": 2302, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2713:27:17", + "src": "2754:27:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", @@ -1879,12 +1992,12 @@ }, { "argumentTypes": null, - "id": 2020, + "id": 2303, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1953, - "src": "2742:2:17", + "referencedDeclaration": 2230, + "src": "2783:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1892,12 +2005,12 @@ }, { "argumentTypes": null, - "id": 2021, + "id": 2304, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2746:6:17", + "referencedDeclaration": 2232, + "src": "2787:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1921,18 +2034,18 @@ ], "expression": { "argumentTypes": null, - "id": 2017, + "id": 2300, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "2689:3:17", + "referencedDeclaration": 4353, + "src": "2730:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 2018, + "id": 2301, "isConstant": false, "isLValue": false, "isPure": true, @@ -1940,13 +2053,13 @@ "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2689:23:17", + "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": 2022, + "id": 2305, "isConstant": false, "isLValue": false, "isPure": false, @@ -1954,14 +2067,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2689:64:17", + "src": "2730:64:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2669:84:17" + "src": "2710:84:18" }, { "expression": { @@ -1972,12 +2085,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2027, + "id": 2310, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2809:5:17", + "referencedDeclaration": 2228, + "src": "2850:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1986,14 +2099,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2028, + "id": 2311, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2816:1:17", + "src": "2857:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2003,12 +2116,12 @@ }, { "argumentTypes": null, - "id": 2029, + "id": 2312, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2016, - "src": "2819:4:17", + "referencedDeclaration": 2299, + "src": "2860:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2020,32 +2133,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2030, + "id": 2313, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "2825:4:17", + "referencedDeclaration": 1803, + "src": "2866:4:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", "typeString": "type(contract Enum)" } }, - "id": 2031, + "id": 2314, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "2825:14:17", + "referencedDeclaration": 1802, + "src": "2866:14:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2032, + "id": 2315, "isConstant": false, "isLValue": false, "isPure": true, @@ -2053,9 +2166,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2825:19:17", + "src": "2866:19:18", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } } @@ -2075,38 +2188,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2025, + "id": 2308, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2775:7:17", + "referencedDeclaration": 983, + "src": "2816:7:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "id": 2026, + "id": 2309, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "2775:33:17", + "referencedDeclaration": 1256, + "src": "2816:33:18", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", + "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": 2033, + "id": 2316, "isConstant": false, "isLValue": false, "isPure": false, @@ -2114,7 +2227,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2775:70:17", + "src": "2816:70:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2123,14 +2236,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74206578656375746520746f6b656e207472616e73666572", - "id": 2034, + "id": 2317, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2847:34:17", + "src": "2888:34:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709", @@ -2150,21 +2263,21 @@ "typeString": "literal_string \"Could not execute token transfer\"" } ], - "id": 2024, + "id": 2307, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2767:7:17", + "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": 2035, + "id": 2318, "isConstant": false, "isLValue": false, "isPure": false, @@ -2172,25 +2285,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2767:115:17", + "src": "2808:115:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2036, + "id": 2319, "nodeType": "ExpressionStatement", - "src": "2767:115:17" + "src": "2808:115:18" } ] }, - "id": 2038, + "id": 2321, "nodeType": "IfStatement", - "src": "2493:400:17", + "src": "2525:409:18", "trueBody": { - "id": 2014, + "id": 2297, "nodeType": "Block", - "src": "2509:140:17", + "src": "2550:140:18", "statements": [ { "expression": { @@ -2201,12 +2314,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2004, + "id": 2287, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1953, - "src": "2565:2:17", + "referencedDeclaration": 2230, + "src": "2606:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2214,12 +2327,12 @@ }, { "argumentTypes": null, - "id": 2005, + "id": 2288, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2569:6:17", + "referencedDeclaration": 2232, + "src": "2610:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2228,14 +2341,14 @@ { "argumentTypes": null, "hexValue": "", - "id": 2006, + "id": 2289, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2577:2:17", + "src": "2618:2:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -2249,32 +2362,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2007, + "id": 2290, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "2581:4:17", + "referencedDeclaration": 1803, + "src": "2622:4:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", "typeString": "type(contract Enum)" } }, - "id": 2008, + "id": 2291, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "2581:14:17", + "referencedDeclaration": 1802, + "src": "2622:14:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2009, + "id": 2292, "isConstant": false, "isLValue": false, "isPure": true, @@ -2282,9 +2395,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2581:19:17", + "src": "2622:19:18", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } } @@ -2304,38 +2417,38 @@ "typeString": "literal_string \"\"" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2002, + "id": 2285, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2531:7:17", + "referencedDeclaration": 983, + "src": "2572:7:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "id": 2003, + "id": 2286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "2531:33:17", + "referencedDeclaration": 1256, + "src": "2572:33:18", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", + "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": 2010, + "id": 2293, "isConstant": false, "isLValue": false, "isPure": false, @@ -2343,7 +2456,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2531:70:17", + "src": "2572:70:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2352,14 +2465,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465206574686572207472616e73666572", - "id": 2011, + "id": 2294, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2603:34:17", + "src": "2644:34:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586", @@ -2379,21 +2492,21 @@ "typeString": "literal_string \"Could not execute ether transfer\"" } ], - "id": 2001, + "id": 2284, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2523:7:17", + "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": 2012, + "id": 2295, "isConstant": false, "isLValue": false, "isPure": false, @@ -2401,15 +2514,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2523:115:17", + "src": "2564:115:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2013, + "id": 2296, "nodeType": "ExpressionStatement", - "src": "2523:115:17" + "src": "2564:115:18" } ] } @@ -2417,24 +2530,23 @@ ] }, "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": 2040, + "id": 2323, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "executeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1956, + "id": 2233, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1951, + "id": 2228, "name": "token", "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "1939:13:17", + "scope": 2323, + "src": "1953:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2442,10 +2554,11 @@ "typeString": "address" }, "typeName": { - "id": 1950, + "id": 2227, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1939:7:17", + "src": "1953:7:18", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2456,11 +2569,11 @@ }, { "constant": false, - "id": 1953, + "id": 2230, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "1954:10:17", + "scope": 2323, + "src": "1968:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2468,10 +2581,11 @@ "typeString": "address" }, "typeName": { - "id": 1952, + "id": 2229, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1954:7:17", + "src": "1968:7:18", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2482,11 +2596,11 @@ }, { "constant": false, - "id": 1955, + "id": 2232, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "1966:14:17", + "scope": 2323, + "src": "1980:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2494,10 +2608,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1954, + "id": 2231, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1966:7:17", + "src": "1980:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2507,54 +2621,53 @@ "visibility": "internal" } ], - "src": "1938:43:17" + "src": "1952:43:18" }, - "payable": false, "returnParameters": { - "id": 1957, + "id": 2234, "nodeType": "ParameterList", "parameters": [], - "src": "2001:0:17" + "src": "2015:0:18" }, - "scope": 2110, - "src": "1912:987:17", + "scope": 2393, + "src": "1926:1014:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2095, + "id": 2378, "nodeType": "Block", - "src": "3002:389:17", + "src": "3043:389:18", "statements": [ { "assignments": [ - 2050 + 2333 ], "declarations": [ { "constant": false, - "id": 2050, + "id": 2333, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "3012:29:17", + "scope": 2378, + "src": "3053:29:18", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" }, "typeName": { "contractScope": null, - "id": 2049, + "id": 2332, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1896, - "src": "3012:10:17", + "referencedDeclaration": 2173, + "src": "3053:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } }, @@ -2562,31 +2675,31 @@ "visibility": "internal" } ], - "id": 2054, + "id": 2337, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2051, + "id": 2334, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "3044:11:17", + "referencedDeclaration": 2166, + "src": "3085:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 2053, + "id": 2336, "indexExpression": { "argumentTypes": null, - "id": 2052, + "id": 2335, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "3056:5:17", + "referencedDeclaration": 2325, + "src": "3097:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2597,14 +2710,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3044:18:17", + "src": "3085:18:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "3012:50:17" + "src": "3053:50:18" }, { "condition": { @@ -2613,7 +2726,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2059, + "id": 2342, "isConstant": false, "isLValue": false, "isPure": false, @@ -2623,18 +2736,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2055, + "id": 2338, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "3076:5:17", + "referencedDeclaration": 2392, + "src": "3117:5:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 2056, + "id": 2339, "isConstant": false, "isLValue": false, "isPure": false, @@ -2642,7 +2755,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3076:7:17", + "src": "3117:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2654,50 +2767,50 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2057, + "id": 2340, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3086:10:17", + "referencedDeclaration": 2333, + "src": "3127:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2058, + "id": 2341, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1895, - "src": "3086:18:17", + "referencedDeclaration": 2172, + "src": "3127:18:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3076:28:17", + "src": "3117:28:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2074, + "id": 2357, "nodeType": "IfStatement", - "src": "3072:126:17", + "src": "3113:126:18", "trueBody": { - "id": 2073, + "id": 2356, "nodeType": "Block", - "src": "3106:92:17", + "src": "3147:92:18", "statements": [ { "expression": { "argumentTypes": null, - "id": 2065, + "id": 2348, "isConstant": false, "isLValue": false, "isPure": false, @@ -2706,26 +2819,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2060, + "id": 2343, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3120:10:17", + "referencedDeclaration": 2333, + "src": "3161:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2062, + "id": 2345, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1895, - "src": "3120:18:17", + "referencedDeclaration": 2172, + "src": "3161:18:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2738,18 +2851,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2063, + "id": 2346, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "3141:5:17", + "referencedDeclaration": 2392, + "src": "3182:5:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 2064, + "id": 2347, "isConstant": false, "isLValue": false, "isPure": false, @@ -2757,26 +2870,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3141:7:17", + "src": "3182:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3120:28:17", + "src": "3161:28:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2066, + "id": 2349, "nodeType": "ExpressionStatement", - "src": "3120:28:17" + "src": "3161:28:18" }, { "expression": { "argumentTypes": null, - "id": 2071, + "id": 2354, "isConstant": false, "isLValue": false, "isPure": false, @@ -2785,26 +2898,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2067, + "id": 2350, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3162:10:17", + "referencedDeclaration": 2333, + "src": "3203:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2069, + "id": 2352, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3162:21:17", + "referencedDeclaration": 2170, + "src": "3203:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2815,14 +2928,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2070, + "id": 2353, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3186:1:17", + "src": "3227:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2830,15 +2943,15 @@ }, "value": "0" }, - "src": "3162:25:17", + "src": "3203:25:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2072, + "id": 2355, "nodeType": "ExpressionStatement", - "src": "3162:25:17" + "src": "3203:25:18" } ] } @@ -2850,7 +2963,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2089, + "id": 2372, "isConstant": false, "isLValue": false, "isPure": false, @@ -2861,7 +2974,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2081, + "id": 2364, "isConstant": false, "isLValue": false, "isPure": false, @@ -2872,7 +2985,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2078, + "id": 2361, "isConstant": false, "isLValue": false, "isPure": false, @@ -2881,26 +2994,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2075, + "id": 2358, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3211:10:17", + "referencedDeclaration": 2333, + "src": "3252:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2076, + "id": 2359, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3211:21:17", + "referencedDeclaration": 2170, + "src": "3252:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2910,18 +3023,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2077, + "id": 2360, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "3235:6:17", + "referencedDeclaration": 2327, + "src": "3276:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3211:30:17", + "src": "3252:30:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2933,32 +3046,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2079, + "id": 2362, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3245:10:17", + "referencedDeclaration": 2333, + "src": "3286:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2080, + "id": 2363, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1891, - "src": "3245:21:17", + "referencedDeclaration": 2168, + "src": "3286:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3211:55:17", + "src": "3252:55:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2972,7 +3085,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2088, + "id": 2371, "isConstant": false, "isLValue": false, "isPure": false, @@ -2983,7 +3096,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2085, + "id": 2368, "isConstant": false, "isLValue": false, "isPure": false, @@ -2992,26 +3105,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2082, + "id": 2365, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3283:10:17", + "referencedDeclaration": 2333, + "src": "3324:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2083, + "id": 2366, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3283:21:17", + "referencedDeclaration": 2170, + "src": "3324:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3021,18 +3134,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2084, + "id": 2367, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "3307:6:17", + "referencedDeclaration": 2327, + "src": "3348:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3283:30:17", + "src": "3324:30:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3044,59 +3157,59 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2086, + "id": 2369, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3316:10:17", + "referencedDeclaration": 2333, + "src": "3357:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2087, + "id": 2370, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3316:21:17", + "referencedDeclaration": 2170, + "src": "3357:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3283:54:17", + "src": "3324:54:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3211:126:17", + "src": "3252:126:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2092, + "id": 2375, "nodeType": "IfStatement", - "src": "3207:155:17", + "src": "3248:155:18", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2090, + "id": 2373, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3358:4:17", + "src": "3399:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3104,24 +3217,24 @@ }, "value": "true" }, - "functionReturnParameters": 2048, - "id": 2091, + "functionReturnParameters": 2331, + "id": 2374, "nodeType": "Return", - "src": "3351:11:17" + "src": "3392:11:18" } }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2093, + "id": 2376, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3379:5:17", + "src": "3420:5:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3129,32 +3242,31 @@ }, "value": "false" }, - "functionReturnParameters": 2048, - "id": 2094, + "functionReturnParameters": 2331, + "id": 2377, "nodeType": "Return", - "src": "3372:12:17" + "src": "3413:12:18" } ] }, "documentation": null, - "id": 2096, + "id": 2379, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "isUnderLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 2045, + "id": 2328, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2042, + "id": 2325, "name": "token", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "2927:13:17", + "scope": 2379, + "src": "2968:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3162,10 +3274,11 @@ "typeString": "address" }, "typeName": { - "id": 2041, + "id": 2324, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2927:7:17", + "src": "2968:7:18", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3176,11 +3289,11 @@ }, { "constant": false, - "id": 2044, + "id": 2327, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "2942:14:17", + "scope": 2379, + "src": "2983:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3188,10 +3301,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2043, + "id": 2326, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2942:7:17", + "src": "2983:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3201,20 +3314,19 @@ "visibility": "internal" } ], - "src": "2926:31:17" + "src": "2967:31:18" }, - "payable": false, "returnParameters": { - "id": 2048, + "id": 2331, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2047, + "id": 2330, "name": "", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "2992:4:17", + "scope": 2379, + "src": "3033:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3222,10 +3334,10 @@ "typeString": "bool" }, "typeName": { - "id": 2046, + "id": 2329, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2992:4:17", + "src": "3033:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3235,19 +3347,19 @@ "visibility": "internal" } ], - "src": "2991:6:17" + "src": "3032:6:18" }, - "scope": 2110, - "src": "2905:486:17", + "scope": 2393, + "src": "2946:486:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2108, + "id": 2391, "nodeType": "Block", - "src": "3555:44:17", + "src": "3596:44:18", "statements": [ { "expression": { @@ -3256,19 +3368,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2106, + "id": 2389, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2101, + "id": 2384, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4017, - "src": "3572:3:17", + "referencedDeclaration": 4368, + "src": "3613:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3285,19 +3397,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2104, + "id": 2387, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2102, + "id": 2385, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4017, - "src": "3579:3:17", + "referencedDeclaration": 4368, + "src": "3620:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3308,14 +3420,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2103, + "id": 2386, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3585:6:17", + "src": "3626:6:18", "subdenomination": "days", "typeDescriptions": { "typeIdentifier": "t_rational_86400_by_1", @@ -3323,65 +3435,63 @@ }, "value": "1" }, - "src": "3579:12:17", + "src": "3620:12:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2105, + "id": 2388, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3578:14:17", + "src": "3619:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3572:20:17", + "src": "3613:20:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2100, - "id": 2107, + "functionReturnParameters": 2383, + "id": 2390, "nodeType": "Return", - "src": "3565:27:17" + "src": "3606:27:18" } ] }, "documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.", - "id": 2109, + "id": 2392, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "today", "nodeType": "FunctionDefinition", "parameters": { - "id": 2097, + "id": 2380, "nodeType": "ParameterList", "parameters": [], - "src": "3497:2:17" + "src": "3538:2:18" }, - "payable": false, "returnParameters": { - "id": 2100, + "id": 2383, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2099, + "id": 2382, "name": "", "nodeType": "VariableDeclaration", - "scope": 2109, - "src": "3545:4:17", + "scope": 2392, + "src": "3586:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3389,10 +3499,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2098, + "id": 2381, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3545:4:17", + "src": "3586:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3402,82 +3512,83 @@ "visibility": "internal" } ], - "src": "3544:6:17" + "src": "3585:6:18" }, - "scope": 2110, - "src": "3483:116:17", + "scope": 2393, + "src": "3524:116:18", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 2111, - "src": "318:3283:17" + "scope": 2394, + "src": "318:3324:18" } ], - "src": "0:3602:17" + "src": "0:3643:18" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", "exportedSymbols": { "DailyLimitModule": [ - 2110 + 2393 ] }, - "id": 2111, + "id": 2394, "nodeType": "SourceUnit", "nodes": [ { - "id": 1873, + "id": 2150, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:17" + "src": "0:23:18" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "../base/Module.sol", - "id": 1874, + "id": 2151, "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 936, - "src": "24:28:17", + "scope": 2394, + "sourceUnit": 1021, + "src": "24:28:18", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "file": "../base/ModuleManager.sol", - "id": 1875, + "id": 2152, "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 1213, - "src": "53:35:17", + "scope": 2394, + "sourceUnit": 1331, + "src": "53:35:18", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", "file": "../base/OwnerManager.sol", - "id": 1876, + "id": 2153, "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 1653, - "src": "89:34:17", + "scope": 2394, + "sourceUnit": 1797, + "src": "89:34:18", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", "file": "../common/Enum.sol", - "id": 1877, + "id": 2154, "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 1660, - "src": "124:28:17", + "scope": 2394, + "sourceUnit": 1804, + "src": "124:28:18", "symbolAliases": [], "unitAlias": "" }, @@ -3487,46 +3598,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1878, + "id": 2155, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "347:6:17", + "referencedDeclaration": 1020, + "src": "347:6:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, - "id": 1879, + "id": 2156, "nodeType": "InheritanceSpecifier", - "src": "347:6:17" + "src": "347:6:18" } ], "contractDependencies": [ - 935, - 1693, - 1735 + 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": 2110, + "id": 2393, "linearizedBaseContracts": [ - 2110, - 935, - 1693, - 1735 + 2393, + 1020, + 1839, + 1881 ], "name": "DailyLimitModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1882, + "id": 2159, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "361:50:17", + "scope": 2393, + "src": "361:50:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3534,10 +3645,10 @@ "typeString": "string" }, "typeName": { - "id": 1880, + "id": 2157, "name": "string", "nodeType": "ElementaryTypeName", - "src": "361:6:17", + "src": "361:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3546,14 +3657,14 @@ "value": { "argumentTypes": null, "hexValue": "4461696c79204c696d6974204d6f64756c65", - "id": 1881, + "id": 2158, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "391:20:17", + "src": "391:20:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_821ea27acfbc77b49f7a021dbe2eb92017d46b8bdda0bff9901cbc8ee143ceb3", @@ -3565,11 +3676,11 @@ }, { "constant": true, - "id": 1885, + "id": 2162, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "417:40:17", + "scope": 2393, + "src": "417:40:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3577,10 +3688,10 @@ "typeString": "string" }, "typeName": { - "id": 1883, + "id": 2160, "name": "string", "nodeType": "ElementaryTypeName", - "src": "417:6:17", + "src": "417:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3588,64 +3699,64 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e32", - "id": 1884, + "hexValue": "302e312e30", + "id": 2161, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "450:7:17", + "src": "450:7:18", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" + "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", + "typeString": "literal_string \"0.1.0\"" }, - "value": "0.0.2" + "value": "0.1.0" }, "visibility": "public" }, { "constant": false, - "id": 1889, + "id": 2166, "name": "dailyLimits", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "535:50:17", + "scope": 2393, + "src": "535:50:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "typeName": { - "id": 1888, + "id": 2165, "keyType": { - "id": 1886, + "id": 2163, "name": "address", "nodeType": "ElementaryTypeName", - "src": "544:7:17", + "src": "544:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "535:31:17", + "src": "535:31:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "valueType": { "contractScope": null, - "id": 1887, + "id": 2164, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1896, - "src": "555:10:17", + "referencedDeclaration": 2173, + "src": "555:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } } @@ -3655,15 +3766,15 @@ }, { "canonicalName": "DailyLimitModule.DailyLimit", - "id": 1896, + "id": 2173, "members": [ { "constant": false, - "id": 1891, + "id": 2168, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1896, - "src": "620:18:17", + "scope": 2173, + "src": "620:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3671,10 +3782,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1890, + "id": 2167, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "620:7:17", + "src": "620:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3685,11 +3796,11 @@ }, { "constant": false, - "id": 1893, + "id": 2170, "name": "spentToday", "nodeType": "VariableDeclaration", - "scope": 1896, - "src": "648:18:17", + "scope": 2173, + "src": "648:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3697,10 +3808,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1892, + "id": 2169, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "648:7:17", + "src": "648:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3711,11 +3822,11 @@ }, { "constant": false, - "id": 1895, + "id": 2172, "name": "lastDay", "nodeType": "VariableDeclaration", - "scope": 1896, - "src": "676:15:17", + "scope": 2173, + "src": "676:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3723,10 +3834,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1894, + "id": 2171, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "676:7:17", + "src": "676:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3738,15 +3849,15 @@ ], "name": "DailyLimit", "nodeType": "StructDefinition", - "scope": 2110, - "src": "592:106:17", + "scope": 2393, + "src": "592:106:18", "visibility": "public" }, { "body": { - "id": 1931, + "id": 2208, "nodeType": "Block", - "src": "1016:146:17", + "src": "1030:146:18", "statements": [ { "expression": { @@ -3754,18 +3865,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1905, + "id": 2182, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "1026:10:17", + "referencedDeclaration": 1019, + "src": "1040:10:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1906, + "id": 2183, "isConstant": false, "isLValue": false, "isPure": false, @@ -3773,21 +3884,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1026:12:17", + "src": "1040:12:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1907, + "id": 2184, "nodeType": "ExpressionStatement", - "src": "1026:12:17" + "src": "1040:12:18" }, { "body": { "expression": { "argumentTypes": null, - "id": 1928, + "id": 2205, "isConstant": false, "isLValue": false, "isPure": false, @@ -3798,42 +3909,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1919, + "id": 2196, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "1104:11:17", + "referencedDeclaration": 2166, + "src": "1118:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1923, + "id": 2200, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1920, + "id": 2197, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1899, - "src": "1116:6:17", + "referencedDeclaration": 2176, + "src": "1130:6:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1922, + "id": 2199, "indexExpression": { "argumentTypes": null, - "id": 1921, + "id": 2198, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1123:1:17", + "referencedDeclaration": 2186, + "src": "1137:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3844,7 +3955,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1116:9:17", + "src": "1130:9:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3855,21 +3966,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1104:22:17", + "src": "1118:22:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1924, + "id": 2201, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1891, - "src": "1104:33:17", + "referencedDeclaration": 2168, + "src": "1118:33:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3881,26 +3992,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1925, + "id": 2202, "name": "_dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1902, - "src": "1140:12:17", + "referencedDeclaration": 2179, + "src": "1154:12:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1927, + "id": 2204, "indexExpression": { "argumentTypes": null, - "id": 1926, + "id": 2203, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1153:1:17", + "referencedDeclaration": 2186, + "src": "1167:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3911,21 +4022,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1140:15:17", + "src": "1154:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1104:51:17", + "src": "1118:51:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1929, + "id": 2206, "nodeType": "ExpressionStatement", - "src": "1104:51:17" + "src": "1118:51:18" }, "condition": { "argumentTypes": null, @@ -3933,19 +4044,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1915, + "id": 2192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1912, + "id": 2189, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1068:1:17", + "referencedDeclaration": 2186, + "src": "1082:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3957,18 +4068,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1913, + "id": 2190, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1899, - "src": "1072:6:17", + "referencedDeclaration": 2176, + "src": "1086:6:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1914, + "id": 2191, "isConstant": false, "isLValue": false, "isPure": false, @@ -3976,31 +4087,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1072:13:17", + "src": "1086:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1068:17:17", + "src": "1082:17:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1930, + "id": 2207, "initializationExpression": { "assignments": [ - 1909 + 2186 ], "declarations": [ { "constant": false, - "id": 1909, + "id": 2186, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1932, - "src": "1053:9:17", + "scope": 2207, + "src": "1067:9:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4008,10 +4119,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1908, + "id": 2185, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1053:7:17", + "src": "1067:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4021,18 +4132,18 @@ "visibility": "internal" } ], - "id": 1911, + "id": 2188, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1910, + "id": 2187, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1065:1:17", + "src": "1079:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4041,12 +4152,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1053:13:17" + "src": "1067:13:18" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1917, + "id": 2194, "isConstant": false, "isLValue": false, "isPure": false, @@ -4054,15 +4165,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1087:3:17", + "src": "1101:3:18", "subExpression": { "argumentTypes": null, - "id": 1916, + "id": 2193, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1087:1:17", + "referencedDeclaration": 2186, + "src": "1101:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4073,55 +4184,55 @@ "typeString": "uint256" } }, - "id": 1918, + "id": 2195, "nodeType": "ExpressionStatement", - "src": "1087:3:17" + "src": "1101:3:18" }, "nodeType": "ForStatement", - "src": "1048:107:17" + "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": 1932, + "id": 2209, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 1903, + "id": 2180, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1899, + "id": 2176, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 1932, - "src": "955:16:17", + "scope": 2209, + "src": "955:23:18", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 1897, + "id": 2174, "name": "address", "nodeType": "ElementaryTypeName", - "src": "955:7:17", + "src": "955:7:18", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1898, + "id": 2175, "length": null, "nodeType": "ArrayTypeName", - "src": "955:9:17", + "src": "955:9:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -4132,32 +4243,32 @@ }, { "constant": false, - "id": 1902, + "id": 2179, "name": "_dailyLimits", "nodeType": "VariableDeclaration", - "scope": 1932, - "src": "973:22:17", + "scope": 2209, + "src": "980:29:18", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { - "id": 1900, + "id": 2177, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "973:7:17", + "src": "980:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1901, + "id": 2178, "length": null, "nodeType": "ArrayTypeName", - "src": "973:9:17", + "src": "980:9:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -4167,31 +4278,30 @@ "visibility": "internal" } ], - "src": "954:42:17" + "src": "954:56:18" }, - "payable": false, "returnParameters": { - "id": 1904, + "id": 2181, "nodeType": "ParameterList", "parameters": [], - "src": "1016:0:17" + "src": "1030:0:18" }, - "scope": 2110, - "src": "940:222:17", + "scope": 2393, + "src": "940:236:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1948, + "id": 2225, "nodeType": "Block", - "src": "1489:59:17", + "src": "1503:59:18", "statements": [ { "expression": { "argumentTypes": null, - "id": 1946, + "id": 2223, "isConstant": false, "isLValue": false, "isPure": false, @@ -4202,26 +4312,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1941, + "id": 2218, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "1499:11:17", + "referencedDeclaration": 2166, + "src": "1513:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1943, + "id": 2220, "indexExpression": { "argumentTypes": null, - "id": 1942, + "id": 2219, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1934, - "src": "1511:5:17", + "referencedDeclaration": 2211, + "src": "1525:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4232,21 +4342,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1499:18:17", + "src": "1513:18:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1944, + "id": 2221, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1891, - "src": "1499:29:17", + "referencedDeclaration": 2168, + "src": "1513:29:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4256,68 +4366,67 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1945, + "id": 2222, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "1531:10:17", + "referencedDeclaration": 2213, + "src": "1545:10:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1499:42:17", + "src": "1513:42:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1947, + "id": 2224, "nodeType": "ExpressionStatement", - "src": "1499:42:17" + "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": 1949, + "id": 2226, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1939, + "id": 2216, "modifierName": { "argumentTypes": null, - "id": 1938, + "id": 2215, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "1474:10:17", + "referencedDeclaration": 997, + "src": "1488:10:18", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1474:10:17" + "src": "1488:10:18" } ], "name": "changeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1937, + "id": 2214, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1934, + "id": 2211, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1949, - "src": "1416:13:17", + "scope": 2226, + "src": "1430:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4325,10 +4434,11 @@ "typeString": "address" }, "typeName": { - "id": 1933, + "id": 2210, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1416:7:17", + "src": "1430:7:18", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4339,11 +4449,11 @@ }, { "constant": false, - "id": 1936, + "id": 2213, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1949, - "src": "1431:18:17", + "scope": 2226, + "src": "1445:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4351,10 +4461,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1935, + "id": 2212, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1431:7:17", + "src": "1445:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4364,26 +4474,25 @@ "visibility": "internal" } ], - "src": "1415:35:17" + "src": "1429:35:18" }, - "payable": false, "returnParameters": { - "id": 1940, + "id": 2217, "nodeType": "ParameterList", "parameters": [], - "src": "1489:0:17" + "src": "1503:0:18" }, - "scope": 2110, - "src": "1390:158:17", + "scope": 2393, + "src": "1404:158:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2039, + "id": 2322, "nodeType": "Block", - "src": "2001:898:17", + "src": "2015:925:18", "statements": [ { "expression": { @@ -4396,18 +4505,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1963, + "id": 2242, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "2126:3:17", + "referencedDeclaration": 4366, + "src": "2149:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1964, + "id": 2243, "isConstant": false, "isLValue": false, "isPure": false, @@ -4415,18 +4524,18 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2126:10:17", + "src": "2149:10:18", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], "expression": { @@ -4434,37 +4543,75 @@ "arguments": [ { "argumentTypes": null, - "id": 1960, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2109:7:17", + "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_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], - "id": 1959, + "id": 2236, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2096:12:17", + "referencedDeclaration": 1796, + "src": "2110:12:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", "typeString": "type(contract OwnerManager)" } }, - "id": 1961, + "id": 2240, "isConstant": false, "isLValue": false, "isPure": false, @@ -4472,27 +4619,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2096:21:17", + "src": "2110:30:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", + "typeIdentifier": "t_contract$_OwnerManager_$1796", "typeString": "contract OwnerManager" } }, - "id": 1962, + "id": 2241, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1602, - "src": "2096:29:17", + "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": 1965, + "id": 2244, "isConstant": false, "isLValue": false, "isPure": false, @@ -4500,7 +4647,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2096:41:17", + "src": "2110:50:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4509,14 +4656,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 1966, + "id": 2245, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2139:39:17", + "src": "2162:39:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", @@ -4536,21 +4683,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 1958, + "id": 2235, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2088:7:17", + "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": 1967, + "id": 2246, "isConstant": false, "isLValue": false, "isPure": false, @@ -4558,15 +4705,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2088:91:17", + "src": "2102:100:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1968, + "id": 2247, "nodeType": "ExpressionStatement", - "src": "2088:91:17" + "src": "2102:100:18" }, { "expression": { @@ -4578,19 +4725,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1972, + "id": 2253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1970, + "id": 2249, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1953, - "src": "2197:2:17", + "referencedDeclaration": 2230, + "src": "2220:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4600,23 +4747,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1971, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "2203:1:17", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2226:10:18", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "2197:7:17", + "src": "2220:16:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4625,14 +4810,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420746f20616464726573732070726f7669646564", - "id": 1973, + "id": 2254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2206:29:17", + "src": "2238:29:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1", @@ -4652,21 +4837,21 @@ "typeString": "literal_string \"Invalid to address provided\"" } ], - "id": 1969, + "id": 2248, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2189:7:17", + "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": 1974, + "id": 2255, "isConstant": false, "isLValue": false, "isPure": false, @@ -4674,15 +4859,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2189:47:17", + "src": "2212:56:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1975, + "id": 2256, "nodeType": "ExpressionStatement", - "src": "2189:47:17" + "src": "2212:56:18" }, { "expression": { @@ -4694,19 +4879,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1979, + "id": 2260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1977, + "id": 2258, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2254:6:17", + "referencedDeclaration": 2232, + "src": "2286:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4717,14 +4902,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1978, + "id": 2259, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2263:1:17", + "src": "2295:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4732,7 +4917,7 @@ }, "value": "0" }, - "src": "2254:10:17", + "src": "2286:10:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4741,14 +4926,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420616d6f756e742070726f7669646564", - "id": 1980, + "id": 2261, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2266:25:17", + "src": "2298:25:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f", @@ -4768,21 +4953,21 @@ "typeString": "literal_string \"Invalid amount provided\"" } ], - "id": 1976, + "id": 2257, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2246:7:17", + "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": 1981, + "id": 2262, "isConstant": false, "isLValue": false, "isPure": false, @@ -4790,15 +4975,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2246:46:17", + "src": "2278:46:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1982, + "id": 2263, "nodeType": "ExpressionStatement", - "src": "2246:46:17" + "src": "2278:46:18" }, { "expression": { @@ -4809,12 +4994,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1985, + "id": 2266, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2387:5:17", + "referencedDeclaration": 2228, + "src": "2419:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4822,12 +5007,12 @@ }, { "argumentTypes": null, - "id": 1986, + "id": 2267, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2394:6:17", + "referencedDeclaration": 2232, + "src": "2426:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4845,18 +5030,18 @@ "typeString": "uint256" } ], - "id": 1984, + "id": 2265, "name": "isUnderLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2096, - "src": "2374:12:17", + "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": 1987, + "id": 2268, "isConstant": false, "isLValue": false, "isPure": false, @@ -4864,7 +5049,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2374:27:17", + "src": "2406:27:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4873,14 +5058,14 @@ { "argumentTypes": null, "hexValue": "4461696c79206c696d697420686173206265656e2072656163686564", - "id": 1988, + "id": 2269, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2403:30:17", + "src": "2435:30:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905", @@ -4900,21 +5085,21 @@ "typeString": "literal_string \"Daily limit has been reached\"" } ], - "id": 1983, + "id": 2264, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2366:7:17", + "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": 1989, + "id": 2270, "isConstant": false, "isLValue": false, "isPure": false, @@ -4922,20 +5107,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2366:68:17", + "src": "2398:68:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1990, + "id": 2271, "nodeType": "ExpressionStatement", - "src": "2366:68:17" + "src": "2398:68:18" }, { "expression": { "argumentTypes": null, - "id": 1996, + "id": 2277, "isConstant": false, "isLValue": false, "isPure": false, @@ -4946,26 +5131,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1991, + "id": 2272, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "2444:11:17", + "referencedDeclaration": 2166, + "src": "2476:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1993, + "id": 2274, "indexExpression": { "argumentTypes": null, - "id": 1992, + "id": 2273, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2456:5:17", + "referencedDeclaration": 2228, + "src": "2488:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4976,21 +5161,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2444:18:17", + "src": "2476:18:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1994, + "id": 2275, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "2444:29:17", + "referencedDeclaration": 2170, + "src": "2476:29:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5000,26 +5185,26 @@ "operator": "+=", "rightHandSide": { "argumentTypes": null, - "id": 1995, + "id": 2276, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2477:6:17", + "referencedDeclaration": 2232, + "src": "2509:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2444:39:17", + "src": "2476:39:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1997, + "id": 2278, "nodeType": "ExpressionStatement", - "src": "2444:39:17" + "src": "2476:39:18" }, { "condition": { @@ -5028,19 +5213,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2000, + "id": 2283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1998, + "id": 2279, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2497:5:17", + "referencedDeclaration": 2228, + "src": "2529:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5050,45 +5235,83 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1999, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "2506:1:17", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2538:10:18", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "2497:10:17", + "src": "2529:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2037, + "id": 2320, "nodeType": "Block", - "src": "2655:238:17", + "src": "2696:238:18", "statements": [ { "assignments": [ - 2016 + 2299 ], "declarations": [ { "constant": false, - "id": 2016, + "id": 2299, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "2669:17:17", + "scope": 2320, + "src": "2710:17:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5096,10 +5319,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2015, + "id": 2298, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2669:5:17", + "src": "2710:5:18", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5109,21 +5332,21 @@ "visibility": "internal" } ], - "id": 2023, + "id": 2306, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 2019, + "id": 2302, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2713:27:17", + "src": "2754:27:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", @@ -5133,12 +5356,12 @@ }, { "argumentTypes": null, - "id": 2020, + "id": 2303, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1953, - "src": "2742:2:17", + "referencedDeclaration": 2230, + "src": "2783:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5146,12 +5369,12 @@ }, { "argumentTypes": null, - "id": 2021, + "id": 2304, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2746:6:17", + "referencedDeclaration": 2232, + "src": "2787:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5175,18 +5398,18 @@ ], "expression": { "argumentTypes": null, - "id": 2017, + "id": 2300, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "2689:3:17", + "referencedDeclaration": 4353, + "src": "2730:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 2018, + "id": 2301, "isConstant": false, "isLValue": false, "isPure": true, @@ -5194,13 +5417,13 @@ "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2689:23:17", + "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": 2022, + "id": 2305, "isConstant": false, "isLValue": false, "isPure": false, @@ -5208,14 +5431,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2689:64:17", + "src": "2730:64:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2669:84:17" + "src": "2710:84:18" }, { "expression": { @@ -5226,12 +5449,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2027, + "id": 2310, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2809:5:17", + "referencedDeclaration": 2228, + "src": "2850:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5240,14 +5463,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2028, + "id": 2311, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2816:1:17", + "src": "2857:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5257,12 +5480,12 @@ }, { "argumentTypes": null, - "id": 2029, + "id": 2312, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2016, - "src": "2819:4:17", + "referencedDeclaration": 2299, + "src": "2860:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5274,32 +5497,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2030, + "id": 2313, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "2825:4:17", + "referencedDeclaration": 1803, + "src": "2866:4:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", "typeString": "type(contract Enum)" } }, - "id": 2031, + "id": 2314, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "2825:14:17", + "referencedDeclaration": 1802, + "src": "2866:14:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2032, + "id": 2315, "isConstant": false, "isLValue": false, "isPure": true, @@ -5307,9 +5530,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2825:19:17", + "src": "2866:19:18", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } } @@ -5329,38 +5552,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2025, + "id": 2308, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2775:7:17", + "referencedDeclaration": 983, + "src": "2816:7:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "id": 2026, + "id": 2309, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "2775:33:17", + "referencedDeclaration": 1256, + "src": "2816:33:18", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", + "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": 2033, + "id": 2316, "isConstant": false, "isLValue": false, "isPure": false, @@ -5368,7 +5591,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2775:70:17", + "src": "2816:70:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5377,14 +5600,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74206578656375746520746f6b656e207472616e73666572", - "id": 2034, + "id": 2317, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2847:34:17", + "src": "2888:34:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709", @@ -5404,21 +5627,21 @@ "typeString": "literal_string \"Could not execute token transfer\"" } ], - "id": 2024, + "id": 2307, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2767:7:17", + "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": 2035, + "id": 2318, "isConstant": false, "isLValue": false, "isPure": false, @@ -5426,25 +5649,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2767:115:17", + "src": "2808:115:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2036, + "id": 2319, "nodeType": "ExpressionStatement", - "src": "2767:115:17" + "src": "2808:115:18" } ] }, - "id": 2038, + "id": 2321, "nodeType": "IfStatement", - "src": "2493:400:17", + "src": "2525:409:18", "trueBody": { - "id": 2014, + "id": 2297, "nodeType": "Block", - "src": "2509:140:17", + "src": "2550:140:18", "statements": [ { "expression": { @@ -5455,12 +5678,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2004, + "id": 2287, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1953, - "src": "2565:2:17", + "referencedDeclaration": 2230, + "src": "2606:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5468,12 +5691,12 @@ }, { "argumentTypes": null, - "id": 2005, + "id": 2288, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2569:6:17", + "referencedDeclaration": 2232, + "src": "2610:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5482,14 +5705,14 @@ { "argumentTypes": null, "hexValue": "", - "id": 2006, + "id": 2289, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2577:2:17", + "src": "2618:2:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -5503,32 +5726,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2007, + "id": 2290, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "2581:4:17", + "referencedDeclaration": 1803, + "src": "2622:4:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", "typeString": "type(contract Enum)" } }, - "id": 2008, + "id": 2291, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "2581:14:17", + "referencedDeclaration": 1802, + "src": "2622:14:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2009, + "id": 2292, "isConstant": false, "isLValue": false, "isPure": true, @@ -5536,9 +5759,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2581:19:17", + "src": "2622:19:18", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } } @@ -5558,38 +5781,38 @@ "typeString": "literal_string \"\"" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2002, + "id": 2285, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2531:7:17", + "referencedDeclaration": 983, + "src": "2572:7:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "id": 2003, + "id": 2286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "2531:33:17", + "referencedDeclaration": 1256, + "src": "2572:33:18", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", + "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": 2010, + "id": 2293, "isConstant": false, "isLValue": false, "isPure": false, @@ -5597,7 +5820,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2531:70:17", + "src": "2572:70:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5606,14 +5829,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465206574686572207472616e73666572", - "id": 2011, + "id": 2294, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2603:34:17", + "src": "2644:34:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586", @@ -5633,21 +5856,21 @@ "typeString": "literal_string \"Could not execute ether transfer\"" } ], - "id": 2001, + "id": 2284, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2523:7:17", + "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": 2012, + "id": 2295, "isConstant": false, "isLValue": false, "isPure": false, @@ -5655,15 +5878,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2523:115:17", + "src": "2564:115:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2013, + "id": 2296, "nodeType": "ExpressionStatement", - "src": "2523:115:17" + "src": "2564:115:18" } ] } @@ -5671,24 +5894,23 @@ ] }, "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": 2040, + "id": 2323, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "executeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1956, + "id": 2233, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1951, + "id": 2228, "name": "token", "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "1939:13:17", + "scope": 2323, + "src": "1953:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5696,10 +5918,11 @@ "typeString": "address" }, "typeName": { - "id": 1950, + "id": 2227, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1939:7:17", + "src": "1953:7:18", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5710,11 +5933,11 @@ }, { "constant": false, - "id": 1953, + "id": 2230, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "1954:10:17", + "scope": 2323, + "src": "1968:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5722,10 +5945,11 @@ "typeString": "address" }, "typeName": { - "id": 1952, + "id": 2229, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1954:7:17", + "src": "1968:7:18", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5736,11 +5960,11 @@ }, { "constant": false, - "id": 1955, + "id": 2232, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "1966:14:17", + "scope": 2323, + "src": "1980:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5748,10 +5972,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1954, + "id": 2231, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1966:7:17", + "src": "1980:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5761,54 +5985,53 @@ "visibility": "internal" } ], - "src": "1938:43:17" + "src": "1952:43:18" }, - "payable": false, "returnParameters": { - "id": 1957, + "id": 2234, "nodeType": "ParameterList", "parameters": [], - "src": "2001:0:17" + "src": "2015:0:18" }, - "scope": 2110, - "src": "1912:987:17", + "scope": 2393, + "src": "1926:1014:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2095, + "id": 2378, "nodeType": "Block", - "src": "3002:389:17", + "src": "3043:389:18", "statements": [ { "assignments": [ - 2050 + 2333 ], "declarations": [ { "constant": false, - "id": 2050, + "id": 2333, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "3012:29:17", + "scope": 2378, + "src": "3053:29:18", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" }, "typeName": { "contractScope": null, - "id": 2049, + "id": 2332, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1896, - "src": "3012:10:17", + "referencedDeclaration": 2173, + "src": "3053:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } }, @@ -5816,31 +6039,31 @@ "visibility": "internal" } ], - "id": 2054, + "id": 2337, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2051, + "id": 2334, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "3044:11:17", + "referencedDeclaration": 2166, + "src": "3085:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 2053, + "id": 2336, "indexExpression": { "argumentTypes": null, - "id": 2052, + "id": 2335, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "3056:5:17", + "referencedDeclaration": 2325, + "src": "3097:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5851,14 +6074,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3044:18:17", + "src": "3085:18:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "3012:50:17" + "src": "3053:50:18" }, { "condition": { @@ -5867,7 +6090,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2059, + "id": 2342, "isConstant": false, "isLValue": false, "isPure": false, @@ -5877,18 +6100,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2055, + "id": 2338, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "3076:5:17", + "referencedDeclaration": 2392, + "src": "3117:5:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 2056, + "id": 2339, "isConstant": false, "isLValue": false, "isPure": false, @@ -5896,7 +6119,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3076:7:17", + "src": "3117:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5908,50 +6131,50 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2057, + "id": 2340, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3086:10:17", + "referencedDeclaration": 2333, + "src": "3127:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2058, + "id": 2341, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1895, - "src": "3086:18:17", + "referencedDeclaration": 2172, + "src": "3127:18:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3076:28:17", + "src": "3117:28:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2074, + "id": 2357, "nodeType": "IfStatement", - "src": "3072:126:17", + "src": "3113:126:18", "trueBody": { - "id": 2073, + "id": 2356, "nodeType": "Block", - "src": "3106:92:17", + "src": "3147:92:18", "statements": [ { "expression": { "argumentTypes": null, - "id": 2065, + "id": 2348, "isConstant": false, "isLValue": false, "isPure": false, @@ -5960,26 +6183,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2060, + "id": 2343, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3120:10:17", + "referencedDeclaration": 2333, + "src": "3161:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2062, + "id": 2345, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1895, - "src": "3120:18:17", + "referencedDeclaration": 2172, + "src": "3161:18:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5992,18 +6215,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2063, + "id": 2346, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "3141:5:17", + "referencedDeclaration": 2392, + "src": "3182:5:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 2064, + "id": 2347, "isConstant": false, "isLValue": false, "isPure": false, @@ -6011,26 +6234,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3141:7:17", + "src": "3182:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3120:28:17", + "src": "3161:28:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2066, + "id": 2349, "nodeType": "ExpressionStatement", - "src": "3120:28:17" + "src": "3161:28:18" }, { "expression": { "argumentTypes": null, - "id": 2071, + "id": 2354, "isConstant": false, "isLValue": false, "isPure": false, @@ -6039,26 +6262,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2067, + "id": 2350, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3162:10:17", + "referencedDeclaration": 2333, + "src": "3203:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2069, + "id": 2352, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3162:21:17", + "referencedDeclaration": 2170, + "src": "3203:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6069,14 +6292,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2070, + "id": 2353, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3186:1:17", + "src": "3227:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6084,15 +6307,15 @@ }, "value": "0" }, - "src": "3162:25:17", + "src": "3203:25:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2072, + "id": 2355, "nodeType": "ExpressionStatement", - "src": "3162:25:17" + "src": "3203:25:18" } ] } @@ -6104,7 +6327,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2089, + "id": 2372, "isConstant": false, "isLValue": false, "isPure": false, @@ -6115,7 +6338,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2081, + "id": 2364, "isConstant": false, "isLValue": false, "isPure": false, @@ -6126,7 +6349,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2078, + "id": 2361, "isConstant": false, "isLValue": false, "isPure": false, @@ -6135,26 +6358,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2075, + "id": 2358, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3211:10:17", + "referencedDeclaration": 2333, + "src": "3252:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2076, + "id": 2359, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3211:21:17", + "referencedDeclaration": 2170, + "src": "3252:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6164,18 +6387,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2077, + "id": 2360, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "3235:6:17", + "referencedDeclaration": 2327, + "src": "3276:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3211:30:17", + "src": "3252:30:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6187,32 +6410,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2079, + "id": 2362, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3245:10:17", + "referencedDeclaration": 2333, + "src": "3286:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2080, + "id": 2363, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1891, - "src": "3245:21:17", + "referencedDeclaration": 2168, + "src": "3286:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3211:55:17", + "src": "3252:55:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6226,7 +6449,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2088, + "id": 2371, "isConstant": false, "isLValue": false, "isPure": false, @@ -6237,7 +6460,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2085, + "id": 2368, "isConstant": false, "isLValue": false, "isPure": false, @@ -6246,26 +6469,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2082, + "id": 2365, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3283:10:17", + "referencedDeclaration": 2333, + "src": "3324:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2083, + "id": 2366, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3283:21:17", + "referencedDeclaration": 2170, + "src": "3324:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6275,18 +6498,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2084, + "id": 2367, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "3307:6:17", + "referencedDeclaration": 2327, + "src": "3348:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3283:30:17", + "src": "3324:30:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6298,59 +6521,59 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2086, + "id": 2369, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3316:10:17", + "referencedDeclaration": 2333, + "src": "3357:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2087, + "id": 2370, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3316:21:17", + "referencedDeclaration": 2170, + "src": "3357:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3283:54:17", + "src": "3324:54:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3211:126:17", + "src": "3252:126:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2092, + "id": 2375, "nodeType": "IfStatement", - "src": "3207:155:17", + "src": "3248:155:18", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2090, + "id": 2373, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3358:4:17", + "src": "3399:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6358,24 +6581,24 @@ }, "value": "true" }, - "functionReturnParameters": 2048, - "id": 2091, + "functionReturnParameters": 2331, + "id": 2374, "nodeType": "Return", - "src": "3351:11:17" + "src": "3392:11:18" } }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2093, + "id": 2376, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3379:5:17", + "src": "3420:5:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6383,32 +6606,31 @@ }, "value": "false" }, - "functionReturnParameters": 2048, - "id": 2094, + "functionReturnParameters": 2331, + "id": 2377, "nodeType": "Return", - "src": "3372:12:17" + "src": "3413:12:18" } ] }, "documentation": null, - "id": 2096, + "id": 2379, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "isUnderLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 2045, + "id": 2328, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2042, + "id": 2325, "name": "token", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "2927:13:17", + "scope": 2379, + "src": "2968:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6416,10 +6638,11 @@ "typeString": "address" }, "typeName": { - "id": 2041, + "id": 2324, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2927:7:17", + "src": "2968:7:18", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6430,11 +6653,11 @@ }, { "constant": false, - "id": 2044, + "id": 2327, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "2942:14:17", + "scope": 2379, + "src": "2983:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6442,10 +6665,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2043, + "id": 2326, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2942:7:17", + "src": "2983:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6455,20 +6678,19 @@ "visibility": "internal" } ], - "src": "2926:31:17" + "src": "2967:31:18" }, - "payable": false, "returnParameters": { - "id": 2048, + "id": 2331, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2047, + "id": 2330, "name": "", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "2992:4:17", + "scope": 2379, + "src": "3033:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6476,10 +6698,10 @@ "typeString": "bool" }, "typeName": { - "id": 2046, + "id": 2329, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2992:4:17", + "src": "3033:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6489,19 +6711,19 @@ "visibility": "internal" } ], - "src": "2991:6:17" + "src": "3032:6:18" }, - "scope": 2110, - "src": "2905:486:17", + "scope": 2393, + "src": "2946:486:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2108, + "id": 2391, "nodeType": "Block", - "src": "3555:44:17", + "src": "3596:44:18", "statements": [ { "expression": { @@ -6510,19 +6732,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2106, + "id": 2389, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2101, + "id": 2384, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4017, - "src": "3572:3:17", + "referencedDeclaration": 4368, + "src": "3613:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6539,19 +6761,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2104, + "id": 2387, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2102, + "id": 2385, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4017, - "src": "3579:3:17", + "referencedDeclaration": 4368, + "src": "3620:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6562,14 +6784,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2103, + "id": 2386, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3585:6:17", + "src": "3626:6:18", "subdenomination": "days", "typeDescriptions": { "typeIdentifier": "t_rational_86400_by_1", @@ -6577,65 +6799,63 @@ }, "value": "1" }, - "src": "3579:12:17", + "src": "3620:12:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2105, + "id": 2388, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3578:14:17", + "src": "3619:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3572:20:17", + "src": "3613:20:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2100, - "id": 2107, + "functionReturnParameters": 2383, + "id": 2390, "nodeType": "Return", - "src": "3565:27:17" + "src": "3606:27:18" } ] }, "documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.", - "id": 2109, + "id": 2392, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "today", "nodeType": "FunctionDefinition", "parameters": { - "id": 2097, + "id": 2380, "nodeType": "ParameterList", "parameters": [], - "src": "3497:2:17" + "src": "3538:2:18" }, - "payable": false, "returnParameters": { - "id": 2100, + "id": 2383, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2099, + "id": 2382, "name": "", "nodeType": "VariableDeclaration", - "scope": 2109, - "src": "3545:4:17", + "scope": 2392, + "src": "3586:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6643,10 +6863,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2098, + "id": 2381, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3545:4:17", + "src": "3586:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6656,39 +6876,26 @@ "visibility": "internal" } ], - "src": "3544:6:17" + "src": "3585:6:18" }, - "scope": 2110, - "src": "3483:116:17", + "scope": 2393, + "src": "3524:116:18", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 2111, - "src": "318:3283:17" + "scope": 2394, + "src": "318:3324:18" } ], - "src": "0:3602:17" + "src": "0:3643:18" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0xf0bbca169ff7ec1e51596e36e19ea088e35d39aa", - "transactionHash": "0x0a19ed756be8febe3359788d84328da7bb2edbee17822b64f2382ac5fc1469cd" - }, - "1538739975997": { - "events": {}, - "links": {}, - "address": "0xe982e462b094850f12af94d21d470e21be9d0e9c", - "transactionHash": "0xe126a1864e545d56f9cdb9c7e717f135088801a7ad81bf2e355225b217c44b87" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:43:41.444Z" + "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 index d681100e..d04ea63f 100644 --- a/safe-contracts/build/contracts/DelegateConstructorProxy.json +++ b/safe-contracts/build/contracts/DelegateConstructorProxy.json @@ -1,34 +1,6 @@ { "contractName": "DelegateConstructorProxy", "abi": [ - { - "constant": true, - "inputs": [], - "name": "proxyType", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "implementation", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -50,40 +22,41 @@ "type": "fallback" } ], - "bytecode": "0x608060405234801561001057600080fd5b506040516102fc3803806102fc83398101806040528101908080519060200190929190805182019291905050508160008173ffffffffffffffffffffffffffffffffffffffff16141515156100f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156101805773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e600082141561017c573d81fd5b5050505b505061016b806101916000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820b2de5726e0943c0fae0f20300b651ccee9090eab24beaf21fd7dbc55f5eef5970029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820b2de5726e0943c0fae0f20300b651ccee9090eab24beaf21fd7dbc55f5eef5970029", - "sourceMap": "355:882:21:-;;;610:625;8:9:-1;5:2;;;30:1;27;20:12;5:2;610:625:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:11;593:1:23;578:11;:16;;;;570:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:11;645:10;;:24;;;;;;;;;;;;;;;;;;508:168;735:1:21;714:11;:18;:22;710:519;;;879:42;875:1;869:8;865:57;1043:1;1040;1026:11;1020:18;1013:4;1000:11;996:22;984:10;976:5;971:3;967:15;954:91;1079:4;1073:11;1124:14;1121:1;1116:3;1101:38;1171:1;1162:7;1159:14;1156:2;;;1188:14;1183:3;1176:27;1156:2;829:390;;;;610:625;;355:882;;;;;;", - "deployedSourceMap": "355:882:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;955:42:23;951:1;945:8;941:57;1030:14;1027:1;1024;1011:34;1125:1;1122;1106:14;1103:1;1091:10;1086:3;1073:54;1161:16;1158:1;1155;1140:38;1206:1;1197:7;1194:14;1191:2;;;1221:16;1218:1;1211:27;1191:2;1263:16;1260:1;1253:27;1426:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1426:104:23;;;;;;;;;;;;;;;;;;;;;;;1302:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:118:23;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:104;1492:7;1522:1;1515:8;;1426:104;:::o;1302:118::-;1373:7;1403:10;;;;;;;;;;;1396:17;;1302:118;:::o", - "source": "pragma solidity 0.4.24;\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 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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", "exportedSymbols": { "DelegateConstructorProxy": [ - 2740 + 3035 ] }, - "id": 2741, + "id": 3036, "nodeType": "SourceUnit", "nodes": [ { - "id": 2718, + "id": 3013, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:21" + "src": "0:23:22" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", "file": "./Proxy.sol", - "id": 2719, + "id": 3014, "nodeType": "ImportDirective", - "scope": 2741, - "sourceUnit": 2841, - "src": "24:21:21", + "scope": 3036, + "sourceUnit": 3122, + "src": "24:21:22", "symbolAliases": [], "unitAlias": "" }, @@ -93,40 +66,40 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2720, + "id": 3015, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "392:5:21", + "referencedDeclaration": 3121, + "src": "392:5:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } }, - "id": 2721, + "id": 3016, "nodeType": "InheritanceSpecifier", - "src": "392:5:21" + "src": "392:5:22" } ], "contractDependencies": [ - 2840 + 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": 2740, + "id": 3035, "linearizedBaseContracts": [ - 2740, - 2840 + 3035, + 3121 ], "name": "DelegateConstructorProxy", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2738, + "id": 3033, "nodeType": "Block", - "src": "700:535:21", + "src": "707:535:22", "statements": [ { "condition": { @@ -135,7 +108,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2734, + "id": 3029, "isConstant": false, "isLValue": false, "isPure": false, @@ -144,18 +117,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2731, + "id": 3026, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2725, - "src": "714:11:21", + "referencedDeclaration": 3020, + "src": "721:11:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 2732, + "id": 3027, "isConstant": false, "isLValue": false, "isPure": false, @@ -163,7 +136,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "714:18:21", + "src": "721:18:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -174,14 +147,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2733, + "id": 3028, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "735:1:21", + "src": "742:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -189,46 +162,46 @@ }, "value": "0" }, - "src": "714:22:21", + "src": "721:22:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2737, + "id": 3032, "nodeType": "IfStatement", - "src": "710:519:21", + "src": "717:519:22", "trueBody": { - "id": 2736, + "id": 3031, "nodeType": "Block", - "src": "738:491:21", + "src": "745:491:22", "statements": [ { "externalReferences": [ { "initializer": { - "declaration": 2725, + "declaration": 3020, "isOffset": false, "isSlot": false, - "src": "1026:11:21", + "src": "1033:11:22", "valueSize": 1 } }, { "initializer": { - "declaration": 2725, + "declaration": 3020, "isOffset": false, "isSlot": false, - "src": "1000:11:21", + "src": "1007:11:22", "valueSize": 1 } } ], - "id": 2735, + "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": "820:409:21" + "src": "827:409:22" } ] } @@ -236,58 +209,57 @@ ] }, "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": 2739, + "id": 3034, "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, + "kind": "constructor", "modifiers": [ { "arguments": [ { "argumentTypes": null, - "id": 2728, + "id": 3023, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2723, - "src": "668:11:21", + "referencedDeclaration": 3018, + "src": "675:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 2729, + "id": 3024, "modifierName": { "argumentTypes": null, - "id": 2727, + "id": 3022, "name": "Proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2840, - "src": "662:5:21", + "referencedDeclaration": 3121, + "src": "669:5:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$2840_$", + "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", "typeString": "type(contract Proxy)" } }, "nodeType": "ModifierInvocation", - "src": "662:18:21" + "src": "669:18:22" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2726, + "id": 3021, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2723, + "id": 3018, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 2739, - "src": "622:19:21", + "scope": 3034, + "src": "622:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -295,10 +267,11 @@ "typeString": "address" }, "typeName": { - "id": 2722, + "id": 3017, "name": "address", "nodeType": "ElementaryTypeName", - "src": "622:7:21", + "src": "622:7:22", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -309,22 +282,22 @@ }, { "constant": false, - "id": 2725, + "id": 3020, "name": "initializer", "nodeType": "VariableDeclaration", - "scope": 2739, - "src": "643:17:21", + "scope": 3034, + "src": "643:24:22", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2724, + "id": 3019, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "643:5:21", + "src": "643:5:22", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -334,56 +307,56 @@ "visibility": "internal" } ], - "src": "621:40:21" + "src": "621:47:22" }, - "payable": false, "returnParameters": { - "id": 2730, + "id": 3025, "nodeType": "ParameterList", "parameters": [], - "src": "700:0:21" + "src": "707:0:22" }, - "scope": 2740, - "src": "610:625:21", + "scope": 3035, + "src": "610:632:22", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2741, - "src": "355:882:21" + "scope": 3036, + "src": "355:889:22" } ], - "src": "0:1238:21" + "src": "0:1245:22" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", "exportedSymbols": { "DelegateConstructorProxy": [ - 2740 + 3035 ] }, - "id": 2741, + "id": 3036, "nodeType": "SourceUnit", "nodes": [ { - "id": 2718, + "id": 3013, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:21" + "src": "0:23:22" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", "file": "./Proxy.sol", - "id": 2719, + "id": 3014, "nodeType": "ImportDirective", - "scope": 2741, - "sourceUnit": 2841, - "src": "24:21:21", + "scope": 3036, + "sourceUnit": 3122, + "src": "24:21:22", "symbolAliases": [], "unitAlias": "" }, @@ -393,40 +366,40 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2720, + "id": 3015, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "392:5:21", + "referencedDeclaration": 3121, + "src": "392:5:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } }, - "id": 2721, + "id": 3016, "nodeType": "InheritanceSpecifier", - "src": "392:5:21" + "src": "392:5:22" } ], "contractDependencies": [ - 2840 + 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": 2740, + "id": 3035, "linearizedBaseContracts": [ - 2740, - 2840 + 3035, + 3121 ], "name": "DelegateConstructorProxy", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2738, + "id": 3033, "nodeType": "Block", - "src": "700:535:21", + "src": "707:535:22", "statements": [ { "condition": { @@ -435,7 +408,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2734, + "id": 3029, "isConstant": false, "isLValue": false, "isPure": false, @@ -444,18 +417,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2731, + "id": 3026, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2725, - "src": "714:11:21", + "referencedDeclaration": 3020, + "src": "721:11:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 2732, + "id": 3027, "isConstant": false, "isLValue": false, "isPure": false, @@ -463,7 +436,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "714:18:21", + "src": "721:18:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -474,14 +447,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2733, + "id": 3028, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "735:1:21", + "src": "742:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -489,46 +462,46 @@ }, "value": "0" }, - "src": "714:22:21", + "src": "721:22:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2737, + "id": 3032, "nodeType": "IfStatement", - "src": "710:519:21", + "src": "717:519:22", "trueBody": { - "id": 2736, + "id": 3031, "nodeType": "Block", - "src": "738:491:21", + "src": "745:491:22", "statements": [ { "externalReferences": [ { "initializer": { - "declaration": 2725, + "declaration": 3020, "isOffset": false, "isSlot": false, - "src": "1026:11:21", + "src": "1033:11:22", "valueSize": 1 } }, { "initializer": { - "declaration": 2725, + "declaration": 3020, "isOffset": false, "isSlot": false, - "src": "1000:11:21", + "src": "1007:11:22", "valueSize": 1 } } ], - "id": 2735, + "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": "820:409:21" + "src": "827:409:22" } ] } @@ -536,58 +509,57 @@ ] }, "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": 2739, + "id": 3034, "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, + "kind": "constructor", "modifiers": [ { "arguments": [ { "argumentTypes": null, - "id": 2728, + "id": 3023, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2723, - "src": "668:11:21", + "referencedDeclaration": 3018, + "src": "675:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 2729, + "id": 3024, "modifierName": { "argumentTypes": null, - "id": 2727, + "id": 3022, "name": "Proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2840, - "src": "662:5:21", + "referencedDeclaration": 3121, + "src": "669:5:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$2840_$", + "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", "typeString": "type(contract Proxy)" } }, "nodeType": "ModifierInvocation", - "src": "662:18:21" + "src": "669:18:22" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2726, + "id": 3021, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2723, + "id": 3018, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 2739, - "src": "622:19:21", + "scope": 3034, + "src": "622:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -595,10 +567,11 @@ "typeString": "address" }, "typeName": { - "id": 2722, + "id": 3017, "name": "address", "nodeType": "ElementaryTypeName", - "src": "622:7:21", + "src": "622:7:22", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -609,22 +582,22 @@ }, { "constant": false, - "id": 2725, + "id": 3020, "name": "initializer", "nodeType": "VariableDeclaration", - "scope": 2739, - "src": "643:17:21", + "scope": 3034, + "src": "643:24:22", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2724, + "id": 3019, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "643:5:21", + "src": "643:5:22", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -634,33 +607,32 @@ "visibility": "internal" } ], - "src": "621:40:21" + "src": "621:47:22" }, - "payable": false, "returnParameters": { - "id": 2730, + "id": 3025, "nodeType": "ParameterList", "parameters": [], - "src": "700:0:21" + "src": "707:0:22" }, - "scope": 2740, - "src": "610:625:21", + "scope": 3035, + "src": "610:632:22", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2741, - "src": "355:882:21" + "scope": 3036, + "src": "355:889:22" } ], - "src": "0:1238:21" + "src": "0:1245:22" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.944Z" + "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 index 96e3a09e..c0e2ee9f 100644 --- a/safe-contracts/build/contracts/Enum.json +++ b/safe-contracts/build/contracts/Enum.json @@ -1,28 +1,29 @@ { "contractName": "Enum", "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820e8f35ac07bd2a835eacbee7ba38b086a012b371f6bdc0da93abfb72fe3b38ec20029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820e8f35ac07bd2a835eacbee7ba38b086a012b371f6bdc0da93abfb72fe3b38ec20029", + "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.4.24;\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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", "exportedSymbols": { "Enum": [ - 1659 + 1803 ] }, - "id": 1660, + "id": 1804, "nodeType": "SourceUnit", "nodes": [ { - "id": 1654, + "id": 1798, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:7" @@ -33,31 +34,31 @@ "contractKind": "contract", "documentation": "@title Enum - Collection of enums\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1659, + "id": 1803, "linearizedBaseContracts": [ - 1659 + 1803 ], "name": "Enum", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Enum.Operation", - "id": 1658, + "id": 1802, "members": [ { - "id": 1655, + "id": 1799, "name": "Call", "nodeType": "EnumValue", "src": "160:4:7" }, { - "id": 1656, + "id": 1800, "name": "DelegateCall", "nodeType": "EnumValue", "src": "174:12:7" }, { - "id": 1657, + "id": 1801, "name": "Create", "nodeType": "EnumValue", "src": "196:6:7" @@ -68,28 +69,29 @@ "src": "135:73:7" } ], - "scope": 1660, + "scope": 1804, "src": "115:95:7" } ], "src": "0:211:7" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", "exportedSymbols": { "Enum": [ - 1659 + 1803 ] }, - "id": 1660, + "id": 1804, "nodeType": "SourceUnit", "nodes": [ { - "id": 1654, + "id": 1798, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:7" @@ -100,31 +102,31 @@ "contractKind": "contract", "documentation": "@title Enum - Collection of enums\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1659, + "id": 1803, "linearizedBaseContracts": [ - 1659 + 1803 ], "name": "Enum", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Enum.Operation", - "id": 1658, + "id": 1802, "members": [ { - "id": 1655, + "id": 1799, "name": "Call", "nodeType": "EnumValue", "src": "160:4:7" }, { - "id": 1656, + "id": 1800, "name": "DelegateCall", "nodeType": "EnumValue", "src": "174:12:7" }, { - "id": 1657, + "id": 1801, "name": "Create", "nodeType": "EnumValue", "src": "196:6:7" @@ -135,7 +137,7 @@ "src": "135:73:7" } ], - "scope": 1660, + "scope": 1804, "src": "115:95:7" } ], @@ -143,9 +145,9 @@ }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.921Z" + "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 index 68be0322..27a6c6c9 100644 --- a/safe-contracts/build/contracts/EtherPaymentFallback.json +++ b/safe-contracts/build/contracts/EtherPaymentFallback.json @@ -7,28 +7,29 @@ "type": "fallback" } ], - "bytecode": "0x6080604052348015600f57600080fd5b50603280601d6000396000f30060806040520000a165627a7a723058200c4d2e3a714c9a462ec30383030f16e7035d8647c8e18373ebc02f115b5a1d690029", - "deployedBytecode": "0x60806040520000a165627a7a723058200c4d2e3a714c9a462ec30383030f16e7035d8647c8e18373ebc02f115b5a1d690029", + "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.4.24;\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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", "exportedSymbols": { "EtherPaymentFallback": [ - 1666 + 1810 ] }, - "id": 1667, + "id": 1811, "nodeType": "SourceUnit", "nodes": [ { - "id": 1661, + "id": 1805, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:8" @@ -39,70 +40,69 @@ "contractKind": "contract", "documentation": "@title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1666, + "id": 1810, "linearizedBaseContracts": [ - 1666 + 1810 ], "name": "EtherPaymentFallback", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1664, + "id": 1808, "nodeType": "Block", "src": "312:8:8", "statements": [] }, "documentation": "@dev Fallback function accepts Ether transactions.", - "id": 1665, + "id": 1809, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "fallback", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1662, + "id": 1806, "nodeType": "ParameterList", "parameters": [], "src": "272:2:8" }, - "payable": true, "returnParameters": { - "id": 1663, + "id": 1807, "nodeType": "ParameterList", "parameters": [], "src": "312:0:8" }, - "scope": 1666, + "scope": 1810, "src": "263:57:8", "stateMutability": "payable", "superFunction": null, "visibility": "external" } ], - "scope": 1667, + "scope": 1811, "src": "167:155:8" } ], "src": "0:323:8" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", "exportedSymbols": { "EtherPaymentFallback": [ - 1666 + 1810 ] }, - "id": 1667, + "id": 1811, "nodeType": "SourceUnit", "nodes": [ { - "id": 1661, + "id": 1805, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:8" @@ -113,49 +113,47 @@ "contractKind": "contract", "documentation": "@title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1666, + "id": 1810, "linearizedBaseContracts": [ - 1666 + 1810 ], "name": "EtherPaymentFallback", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1664, + "id": 1808, "nodeType": "Block", "src": "312:8:8", "statements": [] }, "documentation": "@dev Fallback function accepts Ether transactions.", - "id": 1665, + "id": 1809, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "fallback", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1662, + "id": 1806, "nodeType": "ParameterList", "parameters": [], "src": "272:2:8" }, - "payable": true, "returnParameters": { - "id": 1663, + "id": 1807, "nodeType": "ParameterList", "parameters": [], "src": "312:0:8" }, - "scope": 1666, + "scope": 1810, "src": "263:57:8", "stateMutability": "payable", "superFunction": null, "visibility": "external" } ], - "scope": 1667, + "scope": 1811, "src": "167:155:8" } ], @@ -163,9 +161,9 @@ }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.922Z" + "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 index 23d86b1f..d60d8a21 100644 --- a/safe-contracts/build/contracts/Executor.json +++ b/safe-contracts/build/contracts/Executor.json @@ -19,50 +19,51 @@ "type": "event" } ], - "bytecode": "0x6080604052348015600f57600080fd5b50603280601d6000396000f30060806040520000a165627a7a723058204f5ad88ba445e0f0319a85784ddeaeef53872efa9db1711743380c1ef494d78f0029", - "deployedBytecode": "0x60806040520000a165627a7a723058204f5ad88ba445e0f0319a85784ddeaeef53872efa9db1711743380c1ef494d78f0029", - "sourceMap": "214:1540:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;214:1540:3;;;;;;;", - "deployedSourceMap": "214:1540:3:-;;;", - "source": "pragma solidity 0.4.24;\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 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 != 0;\n emit ContractCreation(newContract);\n }\n }\n\n function executeCall(address to, uint256 value, bytes 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 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 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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Executor.sol", "exportedSymbols": { "Executor": [ - 892 + 975 ] }, - "id": 893, + "id": 976, "nodeType": "SourceUnit", "nodes": [ { - "id": 784, + "id": 865, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:3" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", "file": "../common/Enum.sol", - "id": 785, + "id": 866, "nodeType": "ImportDirective", - "scope": 893, - "sourceUnit": 1660, + "scope": 976, + "sourceUnit": 1804, "src": "24:28:3", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", "file": "../common/EtherPaymentFallback.sol", - "id": 786, + "id": 867, "nodeType": "ImportDirective", - "scope": 893, - "sourceUnit": 1667, + "scope": 976, + "sourceUnit": 1811, "src": "53:44:3", "symbolAliases": [], "unitAlias": "" @@ -73,31 +74,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 787, + "id": 868, "name": "EtherPaymentFallback", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1666, + "referencedDeclaration": 1810, "src": "235:20:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_EtherPaymentFallback_$1666", + "typeIdentifier": "t_contract$_EtherPaymentFallback_$1810", "typeString": "contract EtherPaymentFallback" } }, - "id": 788, + "id": 869, "nodeType": "InheritanceSpecifier", "src": "235:20:3" } ], "contractDependencies": [ - 1666 + 1810 ], "contractKind": "contract", "documentation": "@title Executor - A contract that can execute transactions\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 892, + "id": 975, "linearizedBaseContracts": [ - 892, - 1666 + 975, + 1810 ], "name": "Executor", "nodeType": "ContractDefinition", @@ -105,20 +106,20 @@ { "anonymous": false, "documentation": null, - "id": 792, + "id": 873, "name": "ContractCreation", "nodeType": "EventDefinition", "parameters": { - "id": 791, + "id": 872, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 790, + "id": 871, "indexed": false, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 792, + "scope": 873, "src": "286:19:3", "stateVariable": false, "storageLocation": "default", @@ -127,10 +128,11 @@ "typeString": "address" }, "typeName": { - "id": 789, + "id": 870, "name": "address", "nodeType": "ElementaryTypeName", "src": "286:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -146,32 +148,32 @@ }, { "body": { - "id": 853, + "id": 936, "nodeType": "Block", - "src": "462:399:3", + "src": "469:408:3", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, - "id": 811, + "id": 892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 807, + "id": 888, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "476:9:3", + "referencedDeclaration": 881, + "src": "483:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -183,32 +185,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 808, + "id": 889, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "489:4:3", + "referencedDeclaration": 1803, + "src": "496:4:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", "typeString": "type(contract Enum)" } }, - "id": 809, + "id": 890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "489:14:3", + "referencedDeclaration": 1802, + "src": "496:14:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 810, + "id": 891, "isConstant": false, "isLValue": false, "isPure": true, @@ -216,13 +218,13 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "489:19:3", + "src": "496:19:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, - "src": "476:32:3", + "src": "483:32:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -232,24 +234,24 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, - "id": 825, + "id": 906, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 821, + "id": 902, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "586:9:3", + "referencedDeclaration": 881, + "src": "593:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -261,32 +263,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 822, + "id": 903, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "599:4:3", + "referencedDeclaration": 1803, + "src": "606:4:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", "typeString": "type(contract Enum)" } }, - "id": 823, + "id": 904, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "599:14:3", + "referencedDeclaration": 1802, + "src": "606:14:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 824, + "id": 905, "isConstant": false, "isLValue": false, "isPure": true, @@ -294,35 +296,35 @@ "memberName": "DelegateCall", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "599:27:3", + "src": "606:27:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, - "src": "586:40:3", + "src": "593:40:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 850, + "id": 933, "nodeType": "Block", - "src": "701:154:3", + "src": "708:163:3", "statements": [ { "assignments": [ - 835 + 916 ], "declarations": [ { "constant": false, - "id": 835, + "id": 916, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 854, - "src": "715:19:3", + "scope": 933, + "src": "722:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -330,10 +332,11 @@ "typeString": "address" }, "typeName": { - "id": 834, + "id": 915, "name": "address", "nodeType": "ElementaryTypeName", - "src": "715:7:3", + "src": "722:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -343,18 +346,18 @@ "visibility": "internal" } ], - "id": 839, + "id": 920, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 837, + "id": 918, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 798, - "src": "751:4:3", + "referencedDeclaration": 879, + "src": "758:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -368,18 +371,18 @@ "typeString": "bytes memory" } ], - "id": 836, + "id": 917, "name": "executeCreate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "737:13:3", + "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": 838, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, @@ -387,31 +390,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "737:19:3", + "src": "744:19:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "715:41:3" + "src": "722:41:3" }, { "expression": { "argumentTypes": null, - "id": 844, + "id": 927, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 840, + "id": 921, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "770:7:3", + "referencedDeclaration": 886, + "src": "777:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -425,19 +428,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 843, + "id": 926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 841, + "id": 922, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 835, - "src": "780:11:3", + "referencedDeclaration": 916, + "src": "787:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -447,37 +450,75 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 842, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "795:1:3", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "802:10:3", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "780:16:3", + "src": "787:25:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "770:26:3", + "src": "777:35:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 845, + "id": 928, "nodeType": "ExpressionStatement", - "src": "770:26:3" + "src": "777:35:3" }, { "eventCall": { @@ -485,12 +526,12 @@ "arguments": [ { "argumentTypes": null, - "id": 847, + "id": 930, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 835, - "src": "832:11:3", + "referencedDeclaration": 916, + "src": "848:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -504,18 +545,18 @@ "typeString": "address" } ], - "id": 846, + "id": 929, "name": "ContractCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "815:16:3", + "referencedDeclaration": 873, + "src": "831:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 848, + "id": 931, "isConstant": false, "isLValue": false, "isPure": false, @@ -523,37 +564,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "815:29:3", + "src": "831:29:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 849, + "id": 932, "nodeType": "EmitStatement", - "src": "810:34:3" + "src": "826:34:3" } ] }, - "id": 851, + "id": 934, "nodeType": "IfStatement", - "src": "582:273:3", + "src": "589:282:3", "trueBody": { "expression": { "argumentTypes": null, - "id": 832, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 826, + "id": 907, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "640:7:3", + "referencedDeclaration": 886, + "src": "647:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -566,12 +607,12 @@ "arguments": [ { "argumentTypes": null, - "id": 828, + "id": 909, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 794, - "src": "670:2:3", + "referencedDeclaration": 875, + "src": "677:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -579,12 +620,12 @@ }, { "argumentTypes": null, - "id": 829, + "id": 910, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 798, - "src": "674:4:3", + "referencedDeclaration": 879, + "src": "681:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -592,12 +633,12 @@ }, { "argumentTypes": null, - "id": 830, + "id": 911, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "680:5:3", + "referencedDeclaration": 883, + "src": "687:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -619,18 +660,18 @@ "typeString": "uint256" } ], - "id": 827, + "id": 908, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "650:19:3", + "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": 831, + "id": 912, "isConstant": false, "isLValue": false, "isPure": false, @@ -638,42 +679,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "650:36:3", + "src": "657:36:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "640:46:3", + "src": "647:46:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 833, + "id": 914, "nodeType": "ExpressionStatement", - "src": "640:46:3" + "src": "647:46:3" } }, - "id": 852, + "id": 935, "nodeType": "IfStatement", - "src": "472:383:3", + "src": "479:392:3", "trueBody": { "expression": { "argumentTypes": null, - "id": 819, + "id": 900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 812, + "id": 893, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "522:7:3", + "referencedDeclaration": 886, + "src": "529:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -686,12 +727,12 @@ "arguments": [ { "argumentTypes": null, - "id": 814, + "id": 895, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 794, - "src": "544:2:3", + "referencedDeclaration": 875, + "src": "551:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -699,12 +740,12 @@ }, { "argumentTypes": null, - "id": 815, + "id": 896, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 796, - "src": "548:5:3", + "referencedDeclaration": 877, + "src": "555:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -712,12 +753,12 @@ }, { "argumentTypes": null, - "id": 816, + "id": 897, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 798, - "src": "555:4:3", + "referencedDeclaration": 879, + "src": "562:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -725,12 +766,12 @@ }, { "argumentTypes": null, - "id": 817, + "id": 898, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "561:5:3", + "referencedDeclaration": 883, + "src": "568:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -756,18 +797,18 @@ "typeString": "uint256" } ], - "id": 813, + "id": 894, "name": "executeCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "532:11:3", + "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": 818, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, @@ -775,43 +816,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "532:35:3", + "src": "539:35:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "522:45:3", + "src": "529:45:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 820, + "id": 901, "nodeType": "ExpressionStatement", - "src": "522:45:3" + "src": "529:45:3" } } ] }, "documentation": null, - "id": 854, + "id": 937, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "execute", "nodeType": "FunctionDefinition", "parameters": { - "id": 803, + "id": 884, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 794, + "id": 875, "name": "to", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 937, "src": "330:10:3", "stateVariable": false, "storageLocation": "default", @@ -820,10 +860,11 @@ "typeString": "address" }, "typeName": { - "id": 793, + "id": 874, "name": "address", "nodeType": "ElementaryTypeName", "src": "330:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -834,10 +875,10 @@ }, { "constant": false, - "id": 796, + "id": 877, "name": "value", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 937, "src": "342:13:3", "stateVariable": false, "storageLocation": "default", @@ -846,7 +887,7 @@ "typeString": "uint256" }, "typeName": { - "id": 795, + "id": 876, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "342:7:3", @@ -860,19 +901,19 @@ }, { "constant": false, - "id": 798, + "id": 879, "name": "data", "nodeType": "VariableDeclaration", - "scope": 854, - "src": "357:10:3", + "scope": 937, + "src": "357:17:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 797, + "id": 878, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "357:5:3", @@ -886,26 +927,26 @@ }, { "constant": false, - "id": 800, + "id": 881, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 854, - "src": "369:24:3", + "scope": 937, + "src": "376:24:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 799, + "id": 880, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "369:14:3", + "referencedDeclaration": 1802, + "src": "376:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -914,11 +955,11 @@ }, { "constant": false, - "id": 802, + "id": 883, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 854, - "src": "395:13:3", + "scope": 937, + "src": "402:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -926,10 +967,10 @@ "typeString": "uint256" }, "typeName": { - "id": 801, + "id": 882, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "395:7:3", + "src": "402:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -939,20 +980,19 @@ "visibility": "internal" } ], - "src": "329:80:3" + "src": "329:87:3" }, - "payable": false, "returnParameters": { - "id": 806, + "id": 887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 805, + "id": 886, "name": "success", "nodeType": "VariableDeclaration", - "scope": 854, - "src": "444:12:3", + "scope": 937, + "src": "451:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -960,10 +1000,10 @@ "typeString": "bool" }, "typeName": { - "id": 804, + "id": 885, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "444:4:3", + "src": "451:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -973,103 +1013,102 @@ "visibility": "internal" } ], - "src": "443:14:3" + "src": "450:14:3" }, - "scope": 892, - "src": "313:548:3", + "scope": 975, + "src": "313:564:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 868, + "id": 951, "nodeType": "Block", - "src": "994:182:3", + "src": "1017:182:3", "statements": [ { "externalReferences": [ - { - "data": { - "declaration": 860, - "isOffset": false, - "isSlot": false, - "src": "1148:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 860, - "isOffset": false, - "isSlot": false, - "src": "1129:4:3", - "valueSize": 1 - } - }, { "success": { - "declaration": 865, + "declaration": 948, "isOffset": false, "isSlot": false, - "src": "1091:7:3", + "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": 862, + "declaration": 945, "isOffset": false, "isSlot": false, - "src": "1107:5:3", + "src": "1130:5:3", "valueSize": 1 } }, { "to": { - "declaration": 856, + "declaration": 939, "isOffset": false, "isSlot": false, - "src": "1114:2:3", + "src": "1137:2:3", "valueSize": 1 } }, { "value": { - "declaration": 858, + "declaration": 941, "isOffset": false, "isSlot": false, - "src": "1118:5:3", + "src": "1141:5:3", "valueSize": 1 } } ], - "id": 867, + "id": 950, "nodeType": "InlineAssembly", "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1068:108:3" + "src": "1091:108:3" } ] }, "documentation": null, - "id": 869, + "id": 952, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "executeCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 863, + "id": 946, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 856, + "id": 939, "name": "to", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "888:10:3", + "scope": 952, + "src": "904:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1077,10 +1116,11 @@ "typeString": "address" }, "typeName": { - "id": 855, + "id": 938, "name": "address", "nodeType": "ElementaryTypeName", - "src": "888:7:3", + "src": "904:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1091,11 +1131,11 @@ }, { "constant": false, - "id": 858, + "id": 941, "name": "value", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "900:13:3", + "scope": 952, + "src": "916:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1103,10 +1143,10 @@ "typeString": "uint256" }, "typeName": { - "id": 857, + "id": 940, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "900:7:3", + "src": "916:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1117,22 +1157,22 @@ }, { "constant": false, - "id": 860, + "id": 943, "name": "data", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "915:10:3", + "scope": 952, + "src": "931:17:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 859, + "id": 942, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "915:5:3", + "src": "931:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1143,11 +1183,11 @@ }, { "constant": false, - "id": 862, + "id": 945, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "927:13:3", + "scope": 952, + "src": "950:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1155,10 +1195,10 @@ "typeString": "uint256" }, "typeName": { - "id": 861, + "id": 944, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "927:7:3", + "src": "950:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1168,20 +1208,19 @@ "visibility": "internal" } ], - "src": "887:54:3" + "src": "903:61:3" }, - "payable": false, "returnParameters": { - "id": 866, + "id": 949, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 865, + "id": 948, "name": "success", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "976:12:3", + "scope": 952, + "src": "999:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1189,10 +1228,10 @@ "typeString": "bool" }, "typeName": { - "id": 864, + "id": 947, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "976:4:3", + "src": "999:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1202,94 +1241,93 @@ "visibility": "internal" } ], - "src": "975:14:3" + "src": "998:14:3" }, - "scope": 892, - "src": "867:309:3", + "scope": 975, + "src": "883:316:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 881, + "id": 964, "nodeType": "Block", - "src": "1302:183:3", + "src": "1332:183:3", "statements": [ { "externalReferences": [ - { - "data": { - "declaration": 873, - "isOffset": false, - "isSlot": false, - "src": "1457:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 873, - "isOffset": false, - "isSlot": false, - "src": "1438:4:3", - "valueSize": 1 - } - }, { "success": { - "declaration": 878, + "declaration": 961, "isOffset": false, "isSlot": false, - "src": "1399:7:3", + "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": 875, + "declaration": 958, "isOffset": false, "isSlot": false, - "src": "1423:5:3", + "src": "1453:5:3", "valueSize": 1 } }, { "to": { - "declaration": 871, + "declaration": 954, "isOffset": false, "isSlot": false, - "src": "1430:2:3", + "src": "1460:2:3", "valueSize": 1 } } ], - "id": 880, + "id": 963, "nodeType": "InlineAssembly", "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1376:109:3" + "src": "1406:109:3" } ] }, "documentation": null, - "id": 882, + "id": 965, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "executeDelegateCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 876, + "id": 959, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 871, + "id": 954, "name": "to", "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1211:10:3", + "scope": 965, + "src": "1234:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1297,10 +1335,11 @@ "typeString": "address" }, "typeName": { - "id": 870, + "id": 953, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1211:7:3", + "src": "1234:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1311,22 +1350,22 @@ }, { "constant": false, - "id": 873, + "id": 956, "name": "data", "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1223:10:3", + "scope": 965, + "src": "1246:17:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 872, + "id": 955, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1223:5:3", + "src": "1246:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1337,11 +1376,11 @@ }, { "constant": false, - "id": 875, + "id": 958, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1235:13:3", + "scope": 965, + "src": "1265:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1349,10 +1388,10 @@ "typeString": "uint256" }, "typeName": { - "id": 874, + "id": 957, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1235:7:3", + "src": "1265:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1362,20 +1401,19 @@ "visibility": "internal" } ], - "src": "1210:39:3" + "src": "1233:46:3" }, - "payable": false, "returnParameters": { - "id": 879, + "id": 962, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 878, + "id": 961, "name": "success", "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1284:12:3", + "scope": 965, + "src": "1314:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1383,10 +1421,10 @@ "typeString": "bool" }, "typeName": { - "id": 877, + "id": 960, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1284:4:3", + "src": "1314:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1396,87 +1434,86 @@ "visibility": "internal" } ], - "src": "1283:14:3" + "src": "1313:14:3" }, - "scope": 892, - "src": "1182:303:3", + "scope": 975, + "src": "1205:310:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 890, + "id": 973, "nodeType": "Block", - "src": "1585:167:3", + "src": "1622:167:3", "statements": [ { "externalReferences": [ { "newContract": { - "declaration": 887, + "declaration": 970, "isOffset": false, "isSlot": false, - "src": "1682:11:3", + "src": "1719:11:3", "valueSize": 1 } }, { "data": { - "declaration": 884, + "declaration": 967, "isOffset": false, "isSlot": false, - "src": "1711:4:3", + "src": "1767:4:3", "valueSize": 1 } }, { "data": { - "declaration": 884, + "declaration": 967, "isOffset": false, "isSlot": false, - "src": "1730:4:3", + "src": "1748:4:3", "valueSize": 1 } } ], - "id": 889, + "id": 972, "nodeType": "InlineAssembly", "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", - "src": "1659:93:3" + "src": "1696:93:3" } ] }, "documentation": null, - "id": 891, + "id": 974, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "executeCreate", "nodeType": "FunctionDefinition", "parameters": { - "id": 885, + "id": 968, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 884, + "id": 967, "name": "data", "nodeType": "VariableDeclaration", - "scope": 891, - "src": "1514:10:3", + "scope": 974, + "src": "1544:17:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 883, + "id": 966, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1514:5:3", + "src": "1544:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1486,20 +1523,19 @@ "visibility": "internal" } ], - "src": "1513:12:3" + "src": "1543:19:3" }, - "payable": false, "returnParameters": { - "id": 888, + "id": 971, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 887, + "id": 970, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 891, - "src": "1560:19:3", + "scope": 974, + "src": "1597:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1507,10 +1543,11 @@ "typeString": "address" }, "typeName": { - "id": 886, + "id": 969, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1560:7:3", + "src": "1597:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1520,59 +1557,60 @@ "visibility": "internal" } ], - "src": "1559:21:3" + "src": "1596:21:3" }, - "scope": 892, - "src": "1491:261:3", + "scope": 975, + "src": "1521:268:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 893, - "src": "214:1540:3" + "scope": 976, + "src": "214:1577:3" } ], - "src": "0:1755:3" + "src": "0:1792:3" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Executor.sol", "exportedSymbols": { "Executor": [ - 892 + 975 ] }, - "id": 893, + "id": 976, "nodeType": "SourceUnit", "nodes": [ { - "id": 784, + "id": 865, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:3" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", "file": "../common/Enum.sol", - "id": 785, + "id": 866, "nodeType": "ImportDirective", - "scope": 893, - "sourceUnit": 1660, + "scope": 976, + "sourceUnit": 1804, "src": "24:28:3", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", "file": "../common/EtherPaymentFallback.sol", - "id": 786, + "id": 867, "nodeType": "ImportDirective", - "scope": 893, - "sourceUnit": 1667, + "scope": 976, + "sourceUnit": 1811, "src": "53:44:3", "symbolAliases": [], "unitAlias": "" @@ -1583,31 +1621,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 787, + "id": 868, "name": "EtherPaymentFallback", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1666, + "referencedDeclaration": 1810, "src": "235:20:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_EtherPaymentFallback_$1666", + "typeIdentifier": "t_contract$_EtherPaymentFallback_$1810", "typeString": "contract EtherPaymentFallback" } }, - "id": 788, + "id": 869, "nodeType": "InheritanceSpecifier", "src": "235:20:3" } ], "contractDependencies": [ - 1666 + 1810 ], "contractKind": "contract", "documentation": "@title Executor - A contract that can execute transactions\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 892, + "id": 975, "linearizedBaseContracts": [ - 892, - 1666 + 975, + 1810 ], "name": "Executor", "nodeType": "ContractDefinition", @@ -1615,20 +1653,20 @@ { "anonymous": false, "documentation": null, - "id": 792, + "id": 873, "name": "ContractCreation", "nodeType": "EventDefinition", "parameters": { - "id": 791, + "id": 872, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 790, + "id": 871, "indexed": false, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 792, + "scope": 873, "src": "286:19:3", "stateVariable": false, "storageLocation": "default", @@ -1637,10 +1675,11 @@ "typeString": "address" }, "typeName": { - "id": 789, + "id": 870, "name": "address", "nodeType": "ElementaryTypeName", "src": "286:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1656,32 +1695,32 @@ }, { "body": { - "id": 853, + "id": 936, "nodeType": "Block", - "src": "462:399:3", + "src": "469:408:3", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, - "id": 811, + "id": 892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 807, + "id": 888, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "476:9:3", + "referencedDeclaration": 881, + "src": "483:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -1693,32 +1732,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 808, + "id": 889, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "489:4:3", + "referencedDeclaration": 1803, + "src": "496:4:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", "typeString": "type(contract Enum)" } }, - "id": 809, + "id": 890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "489:14:3", + "referencedDeclaration": 1802, + "src": "496:14:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 810, + "id": 891, "isConstant": false, "isLValue": false, "isPure": true, @@ -1726,13 +1765,13 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "489:19:3", + "src": "496:19:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, - "src": "476:32:3", + "src": "483:32:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1742,24 +1781,24 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, - "id": 825, + "id": 906, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 821, + "id": 902, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "586:9:3", + "referencedDeclaration": 881, + "src": "593:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -1771,32 +1810,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 822, + "id": 903, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "599:4:3", + "referencedDeclaration": 1803, + "src": "606:4:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", "typeString": "type(contract Enum)" } }, - "id": 823, + "id": 904, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "599:14:3", + "referencedDeclaration": 1802, + "src": "606:14:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 824, + "id": 905, "isConstant": false, "isLValue": false, "isPure": true, @@ -1804,35 +1843,35 @@ "memberName": "DelegateCall", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "599:27:3", + "src": "606:27:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, - "src": "586:40:3", + "src": "593:40:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 850, + "id": 933, "nodeType": "Block", - "src": "701:154:3", + "src": "708:163:3", "statements": [ { "assignments": [ - 835 + 916 ], "declarations": [ { "constant": false, - "id": 835, + "id": 916, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 854, - "src": "715:19:3", + "scope": 933, + "src": "722:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1840,10 +1879,11 @@ "typeString": "address" }, "typeName": { - "id": 834, + "id": 915, "name": "address", "nodeType": "ElementaryTypeName", - "src": "715:7:3", + "src": "722:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1853,18 +1893,18 @@ "visibility": "internal" } ], - "id": 839, + "id": 920, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 837, + "id": 918, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 798, - "src": "751:4:3", + "referencedDeclaration": 879, + "src": "758:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1878,18 +1918,18 @@ "typeString": "bytes memory" } ], - "id": 836, + "id": 917, "name": "executeCreate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "737:13:3", + "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": 838, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, @@ -1897,31 +1937,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "737:19:3", + "src": "744:19:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "715:41:3" + "src": "722:41:3" }, { "expression": { "argumentTypes": null, - "id": 844, + "id": 927, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 840, + "id": 921, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "770:7:3", + "referencedDeclaration": 886, + "src": "777:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1935,19 +1975,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 843, + "id": 926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 841, + "id": 922, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 835, - "src": "780:11:3", + "referencedDeclaration": 916, + "src": "787:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1957,37 +1997,75 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 842, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "795:1:3", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "802:10:3", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "780:16:3", + "src": "787:25:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "770:26:3", + "src": "777:35:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 845, + "id": 928, "nodeType": "ExpressionStatement", - "src": "770:26:3" + "src": "777:35:3" }, { "eventCall": { @@ -1995,12 +2073,12 @@ "arguments": [ { "argumentTypes": null, - "id": 847, + "id": 930, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 835, - "src": "832:11:3", + "referencedDeclaration": 916, + "src": "848:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2014,18 +2092,18 @@ "typeString": "address" } ], - "id": 846, + "id": 929, "name": "ContractCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "815:16:3", + "referencedDeclaration": 873, + "src": "831:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 848, + "id": 931, "isConstant": false, "isLValue": false, "isPure": false, @@ -2033,37 +2111,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "815:29:3", + "src": "831:29:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 849, + "id": 932, "nodeType": "EmitStatement", - "src": "810:34:3" + "src": "826:34:3" } ] }, - "id": 851, + "id": 934, "nodeType": "IfStatement", - "src": "582:273:3", + "src": "589:282:3", "trueBody": { "expression": { "argumentTypes": null, - "id": 832, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 826, + "id": 907, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "640:7:3", + "referencedDeclaration": 886, + "src": "647:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2076,12 +2154,12 @@ "arguments": [ { "argumentTypes": null, - "id": 828, + "id": 909, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 794, - "src": "670:2:3", + "referencedDeclaration": 875, + "src": "677:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2089,12 +2167,12 @@ }, { "argumentTypes": null, - "id": 829, + "id": 910, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 798, - "src": "674:4:3", + "referencedDeclaration": 879, + "src": "681:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2102,12 +2180,12 @@ }, { "argumentTypes": null, - "id": 830, + "id": 911, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "680:5:3", + "referencedDeclaration": 883, + "src": "687:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2129,18 +2207,18 @@ "typeString": "uint256" } ], - "id": 827, + "id": 908, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "650:19:3", + "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": 831, + "id": 912, "isConstant": false, "isLValue": false, "isPure": false, @@ -2148,42 +2226,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "650:36:3", + "src": "657:36:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "640:46:3", + "src": "647:46:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 833, + "id": 914, "nodeType": "ExpressionStatement", - "src": "640:46:3" + "src": "647:46:3" } }, - "id": 852, + "id": 935, "nodeType": "IfStatement", - "src": "472:383:3", + "src": "479:392:3", "trueBody": { "expression": { "argumentTypes": null, - "id": 819, + "id": 900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 812, + "id": 893, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "522:7:3", + "referencedDeclaration": 886, + "src": "529:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2196,12 +2274,12 @@ "arguments": [ { "argumentTypes": null, - "id": 814, + "id": 895, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 794, - "src": "544:2:3", + "referencedDeclaration": 875, + "src": "551:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2209,12 +2287,12 @@ }, { "argumentTypes": null, - "id": 815, + "id": 896, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 796, - "src": "548:5:3", + "referencedDeclaration": 877, + "src": "555:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2222,12 +2300,12 @@ }, { "argumentTypes": null, - "id": 816, + "id": 897, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 798, - "src": "555:4:3", + "referencedDeclaration": 879, + "src": "562:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2235,12 +2313,12 @@ }, { "argumentTypes": null, - "id": 817, + "id": 898, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "561:5:3", + "referencedDeclaration": 883, + "src": "568:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2266,18 +2344,18 @@ "typeString": "uint256" } ], - "id": 813, + "id": 894, "name": "executeCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "532:11:3", + "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": 818, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, @@ -2285,43 +2363,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "532:35:3", + "src": "539:35:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "522:45:3", + "src": "529:45:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 820, + "id": 901, "nodeType": "ExpressionStatement", - "src": "522:45:3" + "src": "529:45:3" } } ] }, "documentation": null, - "id": 854, + "id": 937, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "execute", "nodeType": "FunctionDefinition", "parameters": { - "id": 803, + "id": 884, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 794, + "id": 875, "name": "to", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 937, "src": "330:10:3", "stateVariable": false, "storageLocation": "default", @@ -2330,10 +2407,11 @@ "typeString": "address" }, "typeName": { - "id": 793, + "id": 874, "name": "address", "nodeType": "ElementaryTypeName", "src": "330:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2344,10 +2422,10 @@ }, { "constant": false, - "id": 796, + "id": 877, "name": "value", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 937, "src": "342:13:3", "stateVariable": false, "storageLocation": "default", @@ -2356,7 +2434,7 @@ "typeString": "uint256" }, "typeName": { - "id": 795, + "id": 876, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "342:7:3", @@ -2370,19 +2448,19 @@ }, { "constant": false, - "id": 798, + "id": 879, "name": "data", "nodeType": "VariableDeclaration", - "scope": 854, - "src": "357:10:3", + "scope": 937, + "src": "357:17:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 797, + "id": 878, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "357:5:3", @@ -2396,26 +2474,26 @@ }, { "constant": false, - "id": 800, + "id": 881, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 854, - "src": "369:24:3", + "scope": 937, + "src": "376:24:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 799, + "id": 880, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "369:14:3", + "referencedDeclaration": 1802, + "src": "376:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -2424,11 +2502,11 @@ }, { "constant": false, - "id": 802, + "id": 883, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 854, - "src": "395:13:3", + "scope": 937, + "src": "402:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2436,10 +2514,10 @@ "typeString": "uint256" }, "typeName": { - "id": 801, + "id": 882, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "395:7:3", + "src": "402:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2449,20 +2527,19 @@ "visibility": "internal" } ], - "src": "329:80:3" + "src": "329:87:3" }, - "payable": false, "returnParameters": { - "id": 806, + "id": 887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 805, + "id": 886, "name": "success", "nodeType": "VariableDeclaration", - "scope": 854, - "src": "444:12:3", + "scope": 937, + "src": "451:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2470,10 +2547,10 @@ "typeString": "bool" }, "typeName": { - "id": 804, + "id": 885, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "444:4:3", + "src": "451:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2483,103 +2560,102 @@ "visibility": "internal" } ], - "src": "443:14:3" + "src": "450:14:3" }, - "scope": 892, - "src": "313:548:3", + "scope": 975, + "src": "313:564:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 868, + "id": 951, "nodeType": "Block", - "src": "994:182:3", + "src": "1017:182:3", "statements": [ { "externalReferences": [ - { - "data": { - "declaration": 860, - "isOffset": false, - "isSlot": false, - "src": "1148:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 860, - "isOffset": false, - "isSlot": false, - "src": "1129:4:3", - "valueSize": 1 - } - }, { "success": { - "declaration": 865, + "declaration": 948, "isOffset": false, "isSlot": false, - "src": "1091:7:3", + "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": 862, + "declaration": 945, "isOffset": false, "isSlot": false, - "src": "1107:5:3", + "src": "1130:5:3", "valueSize": 1 } }, { "to": { - "declaration": 856, + "declaration": 939, "isOffset": false, "isSlot": false, - "src": "1114:2:3", + "src": "1137:2:3", "valueSize": 1 } }, { "value": { - "declaration": 858, + "declaration": 941, "isOffset": false, "isSlot": false, - "src": "1118:5:3", + "src": "1141:5:3", "valueSize": 1 } } ], - "id": 867, + "id": 950, "nodeType": "InlineAssembly", "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1068:108:3" + "src": "1091:108:3" } ] }, "documentation": null, - "id": 869, + "id": 952, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "executeCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 863, + "id": 946, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 856, + "id": 939, "name": "to", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "888:10:3", + "scope": 952, + "src": "904:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2587,10 +2663,11 @@ "typeString": "address" }, "typeName": { - "id": 855, + "id": 938, "name": "address", "nodeType": "ElementaryTypeName", - "src": "888:7:3", + "src": "904:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2601,11 +2678,11 @@ }, { "constant": false, - "id": 858, + "id": 941, "name": "value", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "900:13:3", + "scope": 952, + "src": "916:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2613,10 +2690,10 @@ "typeString": "uint256" }, "typeName": { - "id": 857, + "id": 940, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "900:7:3", + "src": "916:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2627,22 +2704,22 @@ }, { "constant": false, - "id": 860, + "id": 943, "name": "data", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "915:10:3", + "scope": 952, + "src": "931:17:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 859, + "id": 942, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "915:5:3", + "src": "931:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2653,11 +2730,11 @@ }, { "constant": false, - "id": 862, + "id": 945, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "927:13:3", + "scope": 952, + "src": "950:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2665,10 +2742,10 @@ "typeString": "uint256" }, "typeName": { - "id": 861, + "id": 944, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "927:7:3", + "src": "950:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2678,20 +2755,19 @@ "visibility": "internal" } ], - "src": "887:54:3" + "src": "903:61:3" }, - "payable": false, "returnParameters": { - "id": 866, + "id": 949, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 865, + "id": 948, "name": "success", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "976:12:3", + "scope": 952, + "src": "999:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2699,10 +2775,10 @@ "typeString": "bool" }, "typeName": { - "id": 864, + "id": 947, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "976:4:3", + "src": "999:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2712,94 +2788,93 @@ "visibility": "internal" } ], - "src": "975:14:3" + "src": "998:14:3" }, - "scope": 892, - "src": "867:309:3", + "scope": 975, + "src": "883:316:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 881, + "id": 964, "nodeType": "Block", - "src": "1302:183:3", + "src": "1332:183:3", "statements": [ { "externalReferences": [ - { - "data": { - "declaration": 873, - "isOffset": false, - "isSlot": false, - "src": "1457:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 873, - "isOffset": false, - "isSlot": false, - "src": "1438:4:3", - "valueSize": 1 - } - }, { "success": { - "declaration": 878, + "declaration": 961, "isOffset": false, "isSlot": false, - "src": "1399:7:3", + "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": 875, + "declaration": 958, "isOffset": false, "isSlot": false, - "src": "1423:5:3", + "src": "1453:5:3", "valueSize": 1 } }, { "to": { - "declaration": 871, + "declaration": 954, "isOffset": false, "isSlot": false, - "src": "1430:2:3", + "src": "1460:2:3", "valueSize": 1 } } ], - "id": 880, + "id": 963, "nodeType": "InlineAssembly", "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1376:109:3" + "src": "1406:109:3" } ] }, "documentation": null, - "id": 882, + "id": 965, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "executeDelegateCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 876, + "id": 959, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 871, + "id": 954, "name": "to", "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1211:10:3", + "scope": 965, + "src": "1234:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2807,10 +2882,11 @@ "typeString": "address" }, "typeName": { - "id": 870, + "id": 953, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1211:7:3", + "src": "1234:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2821,22 +2897,22 @@ }, { "constant": false, - "id": 873, + "id": 956, "name": "data", "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1223:10:3", + "scope": 965, + "src": "1246:17:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 872, + "id": 955, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1223:5:3", + "src": "1246:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2847,11 +2923,11 @@ }, { "constant": false, - "id": 875, + "id": 958, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1235:13:3", + "scope": 965, + "src": "1265:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2859,10 +2935,10 @@ "typeString": "uint256" }, "typeName": { - "id": 874, + "id": 957, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1235:7:3", + "src": "1265:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2872,20 +2948,19 @@ "visibility": "internal" } ], - "src": "1210:39:3" + "src": "1233:46:3" }, - "payable": false, "returnParameters": { - "id": 879, + "id": 962, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 878, + "id": 961, "name": "success", "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1284:12:3", + "scope": 965, + "src": "1314:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2893,10 +2968,10 @@ "typeString": "bool" }, "typeName": { - "id": 877, + "id": 960, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1284:4:3", + "src": "1314:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2906,87 +2981,86 @@ "visibility": "internal" } ], - "src": "1283:14:3" + "src": "1313:14:3" }, - "scope": 892, - "src": "1182:303:3", + "scope": 975, + "src": "1205:310:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 890, + "id": 973, "nodeType": "Block", - "src": "1585:167:3", + "src": "1622:167:3", "statements": [ { "externalReferences": [ { "newContract": { - "declaration": 887, + "declaration": 970, "isOffset": false, "isSlot": false, - "src": "1682:11:3", + "src": "1719:11:3", "valueSize": 1 } }, { "data": { - "declaration": 884, + "declaration": 967, "isOffset": false, "isSlot": false, - "src": "1711:4:3", + "src": "1767:4:3", "valueSize": 1 } }, { "data": { - "declaration": 884, + "declaration": 967, "isOffset": false, "isSlot": false, - "src": "1730:4:3", + "src": "1748:4:3", "valueSize": 1 } } ], - "id": 889, + "id": 972, "nodeType": "InlineAssembly", "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", - "src": "1659:93:3" + "src": "1696:93:3" } ] }, "documentation": null, - "id": 891, + "id": 974, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "executeCreate", "nodeType": "FunctionDefinition", "parameters": { - "id": 885, + "id": 968, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 884, + "id": 967, "name": "data", "nodeType": "VariableDeclaration", - "scope": 891, - "src": "1514:10:3", + "scope": 974, + "src": "1544:17:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 883, + "id": 966, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1514:5:3", + "src": "1544:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2996,20 +3070,19 @@ "visibility": "internal" } ], - "src": "1513:12:3" + "src": "1543:19:3" }, - "payable": false, "returnParameters": { - "id": 888, + "id": 971, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 887, + "id": 970, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 891, - "src": "1560:19:3", + "scope": 974, + "src": "1597:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3017,10 +3090,11 @@ "typeString": "address" }, "typeName": { - "id": 886, + "id": 969, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1560:7:3", + "src": "1597:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3030,26 +3104,26 @@ "visibility": "internal" } ], - "src": "1559:21:3" + "src": "1596:21:3" }, - "scope": 892, - "src": "1491:261:3", + "scope": 975, + "src": "1521:268:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 893, - "src": "214:1540:3" + "scope": 976, + "src": "214:1577:3" } ], - "src": "0:1755:3" + "src": "0:1792:3" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.887Z" + "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 index ed9efd8d..1dad2421 100644 --- a/safe-contracts/build/contracts/GnosisSafe.json +++ b/safe-contracts/build/contracts/GnosisSafe.json @@ -490,6 +490,18 @@ { "name": "data", "type": "bytes" + }, + { + "name": "paymentToken", + "type": "address" + }, + { + "name": "payment", + "type": "uint256" + }, + { + "name": "paymentReceiver", + "type": "address" } ], "name": "setup", @@ -522,7 +534,7 @@ "type": "uint256" }, { - "name": "dataGas", + "name": "baseGas", "type": "uint256" }, { @@ -627,8 +639,8 @@ "name": "isValidSignature", "outputs": [ { - "name": "isValid", - "type": "bool" + "name": "", + "type": "bytes4" } ], "payable": false, @@ -678,7 +690,7 @@ "type": "uint256" }, { - "name": "dataGas", + "name": "baseGas", "type": "uint256" }, { @@ -733,7 +745,7 @@ "type": "uint256" }, { - "name": "dataGas", + "name": "baseGas", "type": "uint256" }, { @@ -765,219 +777,258 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506154e4806100206000396000f300608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a1028c4146101985780630d582f131461021d5780630ec78d9e1461026a5780631db61b541461034057806320c13b0b146103735780632f54bf6e1461043a578063468721a7146104955780635ae6bd371461054d578063610b592514610592578063694e80c3146105d55780636a761202146106025780637d8329741461075e5780637de7edef146107c357806385a5affe1461080657806385e332cd1461086f5780638cff6355146108c6578063a0e67e2b1461091d578063a3f4df7e14610989578063affed0e014610a19578063b2494df314610a44578063c0856ffc14610ab0578063c4ca3a9c14610ae3578063ccafc38714610b97578063d4d9bdcd14610bca578063d8d11f7814610bfb578063e009cfde14610d1f578063e318b52b14610d82578063e75235b814610e05578063e86637db14610e30578063f698da2514610fb1578063f8dc5dd914610fe4578063ffa1ad7414611051575b005b3480156101a457600080fd5b506101ff600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506110e1565b60405180826000191660001916815260200191505060405180910390f35b34801561022957600080fd5b50610268600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611387565b005b34801561027657600080fd5b5061033e6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506117f0565b005b34801561034c57600080fd5b5061035561196e565b60405180826000191660001916815260200191505060405180910390f35b34801561037f57600080fd5b50610420600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611995565b604051808215151515815260200191505060405180910390f35b34801561044657600080fd5b5061047b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119eb565b604051808215151515815260200191505060405180910390f35b3480156104a157600080fd5b50610533600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611a6d565b604051808215151515815260200191505060405180910390f35b34801561055957600080fd5b5061057c6004803603810190808035600019169060200190929190505050611b99565b6040518082815260200191505060405180910390f35b34801561059e57600080fd5b506105d3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bb1565b005b3480156105e157600080fd5b5061060060048036038101908080359060200190929190505050611ff2565b005b34801561060e57600080fd5b50610744600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061223d565b604051808215151515815260200191505060405180910390f35b34801561076a57600080fd5b506107ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291905050506124e8565b6040518082815260200191505060405180910390f35b3480156107cf57600080fd5b50610804600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061250d565b005b34801561081257600080fd5b5061086d600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506126ce565b005b34801561087b57600080fd5b506108846127c3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108d257600080fd5b506108db6127c8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561092957600080fd5b506109326127cd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561097557808201518184015260208101905061095a565b505050509050019250505060405180910390f35b34801561099557600080fd5b5061099e612968565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109de5780820151818401526020810190506109c3565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a2557600080fd5b50610a2e6129a1565b6040518082815260200191505060405180910390f35b348015610a5057600080fd5b50610a596129a7565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610a9c578082015181840152602081019050610a81565b505050509050019250505060405180910390f35b348015610abc57600080fd5b50610ac5612c4e565b60405180826000191660001916815260200191505060405180910390f35b348015610aef57600080fd5b50610b81600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050612c75565b6040518082815260200191505060405180910390f35b348015610ba357600080fd5b50610bac612e24565b60405180826000191660001916815260200191505060405180910390f35b348015610bd657600080fd5b50610bf96004803603810190808035600019169060200190929190505050612e4b565b005b348015610c0757600080fd5b50610d01600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f9a565b60405180826000191660001916815260200191505060405180910390f35b348015610d2b57600080fd5b50610d80600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613020565b005b348015610d8e57600080fd5b50610e03600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061349c565b005b348015610e1157600080fd5b50610e1a613baf565b6040518082815260200191505060405180910390f35b348015610e3c57600080fd5b50610f36600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613bb9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610f76578082015181840152602081019050610f5b565b50505050905090810190601f168015610fa35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610fbd57600080fd5b50610fc6613ee1565b60405180826000191660001916815260200191505060405180910390f35b348015610ff057600080fd5b5061104f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613ee7565b005b34801561105d57600080fd5b5061106661442f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156110a657808201518184015260208101905061108b565b50505050905090810190601f1680156110d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000807f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca600102836040518082805190602001908083835b60208310151561113e5780518252602082019150602081019050602083039250611119565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206040516020018083600019166000191681526020018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156111d657805182526020820191506020810190506020830392506111b1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040526040518082805190602001908083835b602083101515611352578051825260208201915060208101905060208303925061132d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156114a45750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611605576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806004541415156117ec576117eb81611ff2565b5b5050565b600060010260065460001916141515611871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570617261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156119255780518252602082019150602081019050602083039250611900565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206006816000191690555061196884848484614468565b50505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b6000806119a1846110e1565b90506000835114156119d457600060076000836000191660001916815260200190815260200160002054141591506119e4565b6119e18185856000614482565b91505b5092915050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611b82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611b8f858585855a614938565b9050949350505050565b60076020528060005260406000206000915090505481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611cce5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b600354811115151561215b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156121fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806004819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936004546040518082815260200191505060405180910390a150565b60008060605a91506122598d8d8d8d8d8d8d8d8d600554613bb9565b90506122ca816040518082805190602001908083835b602083101515612294578051825260208201915060208101905060208303925061226f565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902082866001614482565b151561233e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c6964207369676e6174757265732070726f7669646564000000000081525060200191505060405180910390fd5b600560008154809291906001019190505550885a101515156123ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6124168d8d8d8d60008e148015612405575060008c145b61240f578d612411565b5a5b614938565b92508215156124c1577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c816040518082805190602001908083835b6020831015156124765780518252602082019150602081019050602083039250612451565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405180826000191660001916815260200191505060405180910390a15b60008711156124d8576124d78289898989614a35565b5b50509a9950505050505050505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561268b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600760006127a6846110e1565b600019166000191681526020019081526020016000208190555050565b600181565b600181565b6060806000806003546040519080825280602002602001820160405280156128045781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561295f578083838151811015156128b457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050818060010192505061286f565b82935050505090565b6040805190810160405280600b81526020017f476e6f736973205361666500000000000000000000000000000000000000000081525081565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612abb57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612a16565b82604051908082528060200260200182016040528015612aea5781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612c4557818184815181101515612b9a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612b55565b80935050505090565b7f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60010281565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a9150612d53878787875a614938565b1515612d5e57600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612de9578082015181840152602081019050612dce565b50505050905090810190601f168015612e165780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b7f14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b2060010281565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515612f39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f6e6c79206f776e6572732063616e20617070726f766520612068617368000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000208190555050565b6000612fae8b8b8b8b8b8b8b8b8b8b613bb9565b6040518082805190602001908083835b602083101515612fe35780518252602082019150602081019050602083039250612fbe565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509a9950505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561313d5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156131b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156132d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156135b95750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561362d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561371a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561376e5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156137e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561390a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600454905090565b606060007f14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b206001028c8c8c6040518082805190602001908083835b602083101515613c195780518252602082019150602081019050602083039250613bf4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208c8c8c8c8c8c8c604051602001808c600019166000191681526020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a81526020018960001916600019168152602001886002811115613cb457fe5b60ff1681526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019b5050505050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515613d895780518252602082019150602081019050602083039250613d64565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040529150509a9950505050505050505050565b60065481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613fb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016003540310151515614053576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156140a75750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561411b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614243576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414151561442a5761442981611ff2565b5b505050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6144728484614c37565b61447c82826150f7565b50505050565b600080600080600080600060606041600454028a5110156144a65760009750614929565b60009650600091505b600454821015614924576144c38a8361532e565b80955081965082975050505060008560ff16141561467a57836001900495506020838b010190508573ffffffffffffffffffffffffffffffffffffffff166320c13b0b8c836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561457757808201518184015260208101905061455c565b50505050905090810190601f1680156145a45780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156145dd5780820151818401526020810190506145c2565b50505050905090810190601f16801561460a5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561462b57600080fd5b505af115801561463f573d6000803e3d6000fd5b505050506040513d602081101561465557600080fd5b810190808051906020019092919050505015156146755760009750614929565b614856565b60018560ff1614156147d157836001900495508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561472157506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e6000191660001916815260200190815260200160002054145b1561472f5760009750614929565b88801561476857508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156147cc576000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e60001916600019168152602001908152602001600020819055505b614855565b60018c868686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015614848573d6000803e3d6000fd5b5050506020604051035195505b5b8673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1611158061490657506000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156149145760009750614929565b85965081806001019250506144af565b600197505b50505050505050949350505050565b6000806000600281111561494857fe5b84600281111561495457fe5b141561496d576149668787878661535d565b9150614a2b565b6001600281111561497a57fe5b84600281111561498657fe5b141561499e57614997878685615376565b9150614a2a565b6149a78561538d565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008084865a890301029150600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614614a7b5782614a7d565b325b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614b88578073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515614b83576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b614c2e565b614b9384828461539f565b1515614c2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b50505050505050565b600080600080600454141515614cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515614d54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515614df3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015615062578482815181101515614e1357fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015614e735750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515614ee7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614fd4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050614dfc565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561520b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff1614151561532a576152b582825a615376565b1515615329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d6000811461549b57602081146154a357600094506154ad565b8294506154ad565b8151158315171594505b5050505093925050505600a165627a7a72305820c970763346c3e3eca7d7279c490fc28fd06dd7888989f01a151084588f520e3d0029", - "deployedBytecode": "0x608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a1028c4146101985780630d582f131461021d5780630ec78d9e1461026a5780631db61b541461034057806320c13b0b146103735780632f54bf6e1461043a578063468721a7146104955780635ae6bd371461054d578063610b592514610592578063694e80c3146105d55780636a761202146106025780637d8329741461075e5780637de7edef146107c357806385a5affe1461080657806385e332cd1461086f5780638cff6355146108c6578063a0e67e2b1461091d578063a3f4df7e14610989578063affed0e014610a19578063b2494df314610a44578063c0856ffc14610ab0578063c4ca3a9c14610ae3578063ccafc38714610b97578063d4d9bdcd14610bca578063d8d11f7814610bfb578063e009cfde14610d1f578063e318b52b14610d82578063e75235b814610e05578063e86637db14610e30578063f698da2514610fb1578063f8dc5dd914610fe4578063ffa1ad7414611051575b005b3480156101a457600080fd5b506101ff600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506110e1565b60405180826000191660001916815260200191505060405180910390f35b34801561022957600080fd5b50610268600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611387565b005b34801561027657600080fd5b5061033e6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506117f0565b005b34801561034c57600080fd5b5061035561196e565b60405180826000191660001916815260200191505060405180910390f35b34801561037f57600080fd5b50610420600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611995565b604051808215151515815260200191505060405180910390f35b34801561044657600080fd5b5061047b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119eb565b604051808215151515815260200191505060405180910390f35b3480156104a157600080fd5b50610533600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611a6d565b604051808215151515815260200191505060405180910390f35b34801561055957600080fd5b5061057c6004803603810190808035600019169060200190929190505050611b99565b6040518082815260200191505060405180910390f35b34801561059e57600080fd5b506105d3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bb1565b005b3480156105e157600080fd5b5061060060048036038101908080359060200190929190505050611ff2565b005b34801561060e57600080fd5b50610744600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061223d565b604051808215151515815260200191505060405180910390f35b34801561076a57600080fd5b506107ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291905050506124e8565b6040518082815260200191505060405180910390f35b3480156107cf57600080fd5b50610804600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061250d565b005b34801561081257600080fd5b5061086d600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506126ce565b005b34801561087b57600080fd5b506108846127c3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108d257600080fd5b506108db6127c8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561092957600080fd5b506109326127cd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561097557808201518184015260208101905061095a565b505050509050019250505060405180910390f35b34801561099557600080fd5b5061099e612968565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109de5780820151818401526020810190506109c3565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a2557600080fd5b50610a2e6129a1565b6040518082815260200191505060405180910390f35b348015610a5057600080fd5b50610a596129a7565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610a9c578082015181840152602081019050610a81565b505050509050019250505060405180910390f35b348015610abc57600080fd5b50610ac5612c4e565b60405180826000191660001916815260200191505060405180910390f35b348015610aef57600080fd5b50610b81600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050612c75565b6040518082815260200191505060405180910390f35b348015610ba357600080fd5b50610bac612e24565b60405180826000191660001916815260200191505060405180910390f35b348015610bd657600080fd5b50610bf96004803603810190808035600019169060200190929190505050612e4b565b005b348015610c0757600080fd5b50610d01600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f9a565b60405180826000191660001916815260200191505060405180910390f35b348015610d2b57600080fd5b50610d80600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613020565b005b348015610d8e57600080fd5b50610e03600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061349c565b005b348015610e1157600080fd5b50610e1a613baf565b6040518082815260200191505060405180910390f35b348015610e3c57600080fd5b50610f36600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613bb9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610f76578082015181840152602081019050610f5b565b50505050905090810190601f168015610fa35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610fbd57600080fd5b50610fc6613ee1565b60405180826000191660001916815260200191505060405180910390f35b348015610ff057600080fd5b5061104f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613ee7565b005b34801561105d57600080fd5b5061106661442f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156110a657808201518184015260208101905061108b565b50505050905090810190601f1680156110d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000807f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca600102836040518082805190602001908083835b60208310151561113e5780518252602082019150602081019050602083039250611119565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206040516020018083600019166000191681526020018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156111d657805182526020820191506020810190506020830392506111b1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040526040518082805190602001908083835b602083101515611352578051825260208201915060208101905060208303925061132d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156114a45750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611605576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806004541415156117ec576117eb81611ff2565b5b5050565b600060010260065460001916141515611871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570617261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156119255780518252602082019150602081019050602083039250611900565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206006816000191690555061196884848484614468565b50505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b6000806119a1846110e1565b90506000835114156119d457600060076000836000191660001916815260200190815260200160002054141591506119e4565b6119e18185856000614482565b91505b5092915050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611b82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611b8f858585855a614938565b9050949350505050565b60076020528060005260406000206000915090505481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611cce5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b600354811115151561215b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156121fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806004819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936004546040518082815260200191505060405180910390a150565b60008060605a91506122598d8d8d8d8d8d8d8d8d600554613bb9565b90506122ca816040518082805190602001908083835b602083101515612294578051825260208201915060208101905060208303925061226f565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902082866001614482565b151561233e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c6964207369676e6174757265732070726f7669646564000000000081525060200191505060405180910390fd5b600560008154809291906001019190505550885a101515156123ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6124168d8d8d8d60008e148015612405575060008c145b61240f578d612411565b5a5b614938565b92508215156124c1577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c816040518082805190602001908083835b6020831015156124765780518252602082019150602081019050602083039250612451565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405180826000191660001916815260200191505060405180910390a15b60008711156124d8576124d78289898989614a35565b5b50509a9950505050505050505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561268b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600760006127a6846110e1565b600019166000191681526020019081526020016000208190555050565b600181565b600181565b6060806000806003546040519080825280602002602001820160405280156128045781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561295f578083838151811015156128b457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050818060010192505061286f565b82935050505090565b6040805190810160405280600b81526020017f476e6f736973205361666500000000000000000000000000000000000000000081525081565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612abb57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612a16565b82604051908082528060200260200182016040528015612aea5781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612c4557818184815181101515612b9a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612b55565b80935050505090565b7f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60010281565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a9150612d53878787875a614938565b1515612d5e57600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612de9578082015181840152602081019050612dce565b50505050905090810190601f168015612e165780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b7f14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b2060010281565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515612f39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f6e6c79206f776e6572732063616e20617070726f766520612068617368000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000208190555050565b6000612fae8b8b8b8b8b8b8b8b8b8b613bb9565b6040518082805190602001908083835b602083101515612fe35780518252602082019150602081019050602083039250612fbe565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509a9950505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561313d5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156131b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156132d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156135b95750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561362d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561371a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561376e5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156137e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561390a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600454905090565b606060007f14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b206001028c8c8c6040518082805190602001908083835b602083101515613c195780518252602082019150602081019050602083039250613bf4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208c8c8c8c8c8c8c604051602001808c600019166000191681526020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a81526020018960001916600019168152602001886002811115613cb457fe5b60ff1681526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019b5050505050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515613d895780518252602082019150602081019050602083039250613d64565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040529150509a9950505050505050505050565b60065481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613fb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016003540310151515614053576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156140a75750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561411b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614243576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414151561442a5761442981611ff2565b5b505050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6144728484614c37565b61447c82826150f7565b50505050565b600080600080600080600060606041600454028a5110156144a65760009750614929565b60009650600091505b600454821015614924576144c38a8361532e565b80955081965082975050505060008560ff16141561467a57836001900495506020838b010190508573ffffffffffffffffffffffffffffffffffffffff166320c13b0b8c836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561457757808201518184015260208101905061455c565b50505050905090810190601f1680156145a45780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156145dd5780820151818401526020810190506145c2565b50505050905090810190601f16801561460a5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561462b57600080fd5b505af115801561463f573d6000803e3d6000fd5b505050506040513d602081101561465557600080fd5b810190808051906020019092919050505015156146755760009750614929565b614856565b60018560ff1614156147d157836001900495508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561472157506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e6000191660001916815260200190815260200160002054145b1561472f5760009750614929565b88801561476857508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156147cc576000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e60001916600019168152602001908152602001600020819055505b614855565b60018c868686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015614848573d6000803e3d6000fd5b5050506020604051035195505b5b8673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1611158061490657506000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156149145760009750614929565b85965081806001019250506144af565b600197505b50505050505050949350505050565b6000806000600281111561494857fe5b84600281111561495457fe5b141561496d576149668787878661535d565b9150614a2b565b6001600281111561497a57fe5b84600281111561498657fe5b141561499e57614997878685615376565b9150614a2a565b6149a78561538d565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008084865a890301029150600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614614a7b5782614a7d565b325b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614b88578073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515614b83576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b614c2e565b614b9384828461539f565b1515614c2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b50505050505050565b600080600080600454141515614cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515614d54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515614df3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015615062578482815181101515614e1357fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015614e735750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515614ee7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614fd4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050614dfc565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561520b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff1614151561532a576152b582825a615376565b1515615329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d6000811461549b57602081146154a357600094506154ad565b8294506154ad565b8151158315171594505b5050505093925050505600a165627a7a72305820c970763346c3e3eca7d7279c490fc28fd06dd7888989f01a151084588f520e3d0029", - "sourceMap": "534:14254:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;534:14254:0;;;;;;;", - "deployedSourceMap": "534:14254:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11898:357;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11898:357:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2225:627:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2198:308:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2198:308:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;820:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11293:447;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11293:447:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5925:129:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5925:129:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2785:429:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1649:49:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1649:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:495:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:495:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:441:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5357:441:6;;;;;;;;;;;;;;;;;;;;;;;;;;3493:1450:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3493:1450:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:69;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;10831:130:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10831:130:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:55:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;419:54:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;6136:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6136:458:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6136:458:6;;;;;;;;;;;;;;;;;646:43:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;646:43: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;646:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1490:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1490:20:0;;;;;;;;;;;;;;;;;;;;;;;3293:738:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3293:738:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3293:738:5;;;;;;;;;;;;;;;;;1329:110:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1329:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9652:572;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9652:572:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1148:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1148:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10468:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10468:201:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14289:497;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14289:497:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1938:511:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1938:511:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4345:823:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4345:823:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5804:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5804:115:6;;;;;;;;;;;;;;;;;;;;;;;12968:635:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12968:635: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;12968:635:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1516:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1516:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3194:817:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3194:817:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;695:40:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;695:40: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;695:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11898:357;11996:7;12019:23;1373:66;12079:17;;12108:7;12098:18;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;12098:18:0;;;;;;;;;;;;;;;;12068:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12068::0;;;12045:82;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;12045:82:0;;;;;;;;;;;;;;;;12019:108;;12189:4;12184:10;;12201:1;12196:7;;12205:15;;12222;12167:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12167:71:0;;;12144:104;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;12144:104:0;;;;;;;;;;;;;;;;12137:111;;11898:357;;;;:::o;2225:627:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2397:1:6;2388:5;:10;;;;:38;;;;;469:3;2402:24;;:5;:24;;;;2388:38;2380:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:1;2519:6;:13;2526:5;2519:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2511:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2595:6;:23;469:3;2595:23;;;;;;;;;;;;;;;;;;;;;;;;;2579:6;:13;2586:5;2579:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2654:5;2628:6;:23;469:3;2628:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2669:10;;:12;;;;;;;;;;;;;2696:17;2707:5;2696:17;;;;;;;;;;;;;;;;;;;;;;2794:10;2781:9;;:23;;2777:68;;;2818:27;2834:10;2818:15;:27::i;:::-;2777:68;2225:627;;:::o;2198:308:0:-;2332:1;2313:20;;:15;;:20;;;;2305:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;872:66;2416:25;;2443:4;2405:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2405:43:0;;;2395:54;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;2395:54:0;;;;;;;;;;;;;;;;2377:15;:72;;;;;;;2459:40;2469:7;2478:10;2490:2;2494:4;2459:9;:40::i;:::-;2198:308;;;;:::o;820:118::-;872:66;820:118;;;:::o;11293:447::-;11382:12;11410:19;11432:21;11447:5;11432:14;:21::i;:::-;11410:43;;11488:1;11467:10;:17;:22;11463:271;;;11546:1;11515:14;:27;11530:11;11515:27;;;;;;;;;;;;;;;;;;:32;;11505:42;;11463:271;;;11669:54;11685:11;11698:5;11705:10;11717:5;11669:15;:54::i;:::-;11659:64;;11463:271;11293:447;;;;;:::o;5925:129:6:-;6002:4;6046:1;6029:6;:13;6036:5;6029:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;6022:25;;5925:129;;;:::o;2785:429:5:-;2917:12;3025:1;3002:7;:19;3010:10;3002:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2994:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3161:46;3169:2;3173:5;3180:4;3186:9;3197;3161:7;:46::i;:::-;3151:56;;2785:429;;;;;;:::o;1649:49:0:-;;;;;;;;;;;;;;;;;:::o;1182:495:5:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:5;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1649:21;1663:6;1649:21;;;;;;;;;;;;;;;;;;;;;;1182:495;:::o;5357:441:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:10:6;;5527;:24;;5519:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5675:1;5661:10;:15;;5653:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5739:10;5727:9;:22;;;;5764:27;5781:9;;5764:27;;;;;;;;;;;;;;;;;;5357:441;:::o;3493:1450:0:-;3815:12;3843:16;3881:23;3862:9;3843:28;;3907:194;3942:2;3946:5;3953:4;3959:9;4002;4013:7;4022:8;4032;4042:14;4086:5;;3907:21;:194::i;:::-;3881:220;;4119:68;4145:10;4135:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;4135:21:0;;;;;;;;;;;;;;;;4158:10;4170;4182:4;4119:15;:68::i;:::-;4111:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4280:5;;:7;;;;;;;;;;;;;4318:9;4305;:22;;4297:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4501:92;4509:2;4513:5;4520:4;4526:9;4550:1;4537:9;:14;:31;;;;;4567:1;4555:8;:13;4537:31;:55;;4583:9;4537:55;;;4571:9;4537:55;4501:7;:92::i;:::-;4491:102;;4608:7;4607:8;4603:82;;;4636:38;4662:10;4652:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;4652:21:0;;;;;;;;;;;;;;;;4636:38;;;;;;;;;;;;;;;;;;;;;;;;4603:82;4841:1;4830:8;:12;4826:111;;;4858:68;4872:8;4882:7;4891:8;4901;4911:14;4858:13;:68::i;:::-;4826:111;3493:1450;;;;;;;;;;;;;;:::o;1809:69::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;626:248:9:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;10831:130:0:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10953:1:0;10913:14;:37;10928:21;10943:5;10928:14;:21::i;:::-;10913:37;;;;;;;;;;;;;;;;;:41;;;;10831:130;:::o;488:55:5:-;539:3;488:55;:::o;419:54:6:-;469:3;419:54;:::o;6136:458::-;6202:9;6227:22;6321:13;6348:20;6266:10;;6252:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6252:25:6;;;;6227:50;;6337:1;6321:17;;6371:6;:23;469:3;6371:23;;;;;;;;;;;;;;;;;;;;;;;;;6348:46;;6404:162;469:3;6410:31;;:12;:31;;;;6404:162;;;6472:12;6457:5;6463;6457:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6513:6;:20;6520:12;6513:20;;;;;;;;;;;;;;;;;;;;;;;;;6498:35;;6547:8;;;;;;;6404:162;;;6582:5;6575:12;;6136:458;;;;:::o;646:43:0:-;;;;;;;;;;;;;;;;;;;;:::o;1490:20::-;;;;:::o;3293:738:5:-;3360:9;3419:19;3452:21;3652:22;3441:1;3419:23;;3476:7;:25;539:3;3476:25;;;;;;;;;;;;;;;;;;;;;;;;;3452:49;;3511:132;539:3;3517:33;;:13;:33;;;;3511:132;;;3582:7;:22;3590:13;3582:22;;;;;;;;;;;;;;;;;;;;;;;;;3566:38;;3618:14;;;;;;;3511:132;;;3691:11;3677:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3677:26:5;;;;3652:51;;3761:1;3747:15;;3788:7;:25;539:3;3788:25;;;;;;;;;;;;;;;;;;;;;;;;;3772:41;;3823:180;539:3;3829:33;;:13;:33;;;;3823:180;;;3899:13;3878:5;3884:11;3878:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3942:7;:22;3950:13;3942:22;;;;;;;;;;;;;;;;;;;;;;;;;3926:38;;3978:14;;;;;;;3823:180;;;4019:5;4012:12;;3293:738;;;;:::o;1329:110:0:-;1373:66;1329:110;;;:::o;9652:572::-;9791:7;9814:16;10053:19;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9833:9:0;9814:28;;9996:46;10004:2;10008:5;10015:4;10021:9;10032;9996:7;:46::i;:::-;9988:55;;;;;;;;10086:9;10075:8;:20;10053:42;;10203:11;10186:29;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10186:29:0;;;10172: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;10172:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1148:109;1191:66;1148:109;;;:::o;10468:201::-;10571:1;10549:6;:18;10556:10;10549:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;10541:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10661:1;10617:14;:26;10632:10;10617:26;;;;;;;;;;;;;;;:41;10644:13;10617:41;;;;;;;;;;;;;;;;;:45;;;;10468:201;:::o;14289:497::-;14625:7;14665:113;14687:2;14691:5;14698:4;14704:9;14715;14726:7;14735:8;14745;14755:14;14771:6;14665:21;:113::i;:::-;14655:124;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;14655:124:0;;;;;;;;;;;;;;;;14648:131;;14289:497;;;;;;;;;;;;:::o;1938:511:5:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2152:1:5;2141:6;2133:20;;;;:59;;;;;539:3;2157:35;;2165:6;2157:35;;;;2133:59;2125:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:6;2246:38;;:7;:19;2254:10;2246:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2238:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2361:7;:15;2369:6;2361:15;;;;;;;;;;;;;;;;;;;;;;;;;2339:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2404:1;2386:7;:15;2394:6;2386:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2420:22;2435:6;2420:22;;;;;;;;;;;;;;;;;;;;;;1938:511;;:::o;4345:823:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4528:1:6;4516:8;:13;;;;:44;;;;;469:3;4533:27;;:8;:27;;;;4516:44;4508:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4673:1;4653:6;:16;4660:8;4653:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4645:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4819:1;4807:8;:13;;;;:44;;;;;469:3;4824:27;;:8;:27;;;;4807:44;4799:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4925:8;4904:29;;:6;:17;4911:9;4904:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4896:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5005:6;:16;5012:8;5005:16;;;;;;;;;;;;;;;;;;;;;;;;;4986:6;:16;4993:8;4986:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5051:8;5031:6;:17;5038:9;5031:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5088:1;5069:6;:16;5076:8;5069:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;5104:22;5117:8;5104:22;;;;;;;;;;;;;;;;;;;;;;5141:20;5152:8;5141:20;;;;;;;;;;;;;;;;;;;;;;4345:823;;;:::o;5804:115::-;5873:7;5903:9;;5896:16;;5804:115;:::o;12968:635:0:-;13307:5;13328:18;1191:66;13383:16;;13401:2;13405:5;13422:4;13412:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;13412:15:0;;;;;;;;;;;;;;;;13429:9;13440;13451:7;13460:8;13470;13480:14;13496:6;13372:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13372:131:0;;;13349:164;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;13349:164:0;;;;;;;;;;;;;;;;13328:185;;13552:4;13547:10;;13564:1;13559:7;;13568:15;;13585:10;13530:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13530:66:0;;;13523:73;;12968:635;;;;;;;;;;;;;:::o;1516:30::-;;;;:::o;3194:817:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:10:6;3415:1;3402:10;;:14;:28;;3394:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3595:1;3586:5;:10;;;;:38;;;;;469:3;3600:24;;:5;:24;;;;3586:38;3578:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3698:5;3677:26;;:6;:17;3684:9;3677:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3669:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3776:6;:13;3783:5;3776:13;;;;;;;;;;;;;;;;;;;;;;;;;3756:6;:17;3763:9;3756:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3815:1;3799:6;:13;3806:5;3799:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3826:10;;:12;;;;;;;;;;;;;;3853:19;3866:5;3853:19;;;;;;;;;;;;;;;;;;;;;;3953:10;3940:9;;:23;;3936:68;;;3977:27;3993:10;3977:15;:27::i;:::-;3936:68;3194:817;;;:::o;695:40:0:-;;;;;;;;;;;;;;;;;;;;:::o;740:309:2:-;853:32;865:7;874:10;853:11;:32::i;:::-;1020:22;1033:2;1037:4;1020:12;:22::i;:::-;740:309;;;;:::o;6280:2461:0:-;6405:4;6630:17;6670:20;6700:7;6717:9;6736;6755;7104:30;6528:2;6516:9;;:14;6496:10;:17;:34;6492:77;;;6553:5;6546:12;;;;6492:77;6658:1;6630:30;;6783:1;6779:5;;6774:1940;6790:9;;6786:1;:13;6774:1940;;;6832:29;6847:10;6859:1;6832:14;:29::i;:::-;6820:41;;;;;;;;;;;;6941:1;6936;:6;;;6932:1616;;;7084:1;7076:10;;;7061:25;;7439:4;7435:1;7423:10;7419:18;7415:29;7394:50;;7504:12;7484:50;;;7535:4;7541:17;7484: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;7484: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;7484:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7484:75:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7484:75:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7484:75:0;;;;;;;;;;;;;;;;7483:76;7479:135;;;7590:5;7583:12;;;;7479:135;6932:1616;;;7696:1;7691;:6;;;7687:861;;;7835:1;7827:10;;;7812:25;;8018:12;8004:26;;:10;:26;;;;:73;;;;;8076:1;8034:14;:28;8049:12;8034:28;;;;;;;;;;;;;;;:38;8063:8;8034:38;;;;;;;;;;;;;;;;;;:43;8004:73;8000:132;;;8108:5;8101:12;;;;8000:132;8253:11;:41;;;;;8282:12;8268:26;;:10;:26;;;;8253:41;8249:130;;;8359:1;8318:14;:28;8333:12;8318:28;;;;;;;;;;;;;;;:38;8347:8;8318:38;;;;;;;;;;;;;;;;;:42;;;;8249:130;7687:861;;;8505:28;8515:8;8525:1;8528;8531;8505:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8505:28:0;;;;;;;;8490:43;;7687:861;6932:1616;8581:9;8565:25;;:12;:25;;;;:54;;;;8618:1;8594:6;:20;8601:12;8594:20;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;8565:54;8561:105;;;8646:5;8639:12;;;;8561:105;8691:12;8679:24;;6801:3;;;;;;;6774:1940;;;8730:4;8723:11;;6280:2461;;;;;;;;;;;;;;:::o;313:548:3:-;444:12;715:19;489;476:32;;;;;;;;:9;:32;;;;;;;;;472:383;;;532:35;544:2;548:5;555:4;561:5;532:11;:35::i;:::-;522:45;;472:383;;;599:27;586:40;;;;;;;;:9;:40;;;;;;;;;582:273;;;650:36;670:2;674:4;680:5;650:19;:36::i;:::-;640:46;;582:273;;;737:19;751:4;737:13;:19::i;:::-;715:41;;795:1;780:11;:16;;;;770:26;;815:29;832:11;815:29;;;;;;;;;;;;;;;;;;;;;;582:273;472:383;313:548;;;;;;;;:::o;4949:715:0:-;5142:14;5271:16;5195:8;5184:7;5171:9;5161:7;:19;5160:31;5159:44;5142:61;;5316:1;5290:28;;:14;:28;;;:57;;5333:14;5290:57;;;5321:9;5290:57;5271:76;;5381:1;5361:22;;:8;:22;;;5357:301;;;5468:8;:13;;:21;5482:6;5468:21;;;;;;;;;;;;;;;;;;;;;;;5460:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:301;;;5567:41;5581:8;5591;5601:6;5567:13;:41::i;:::-;5559:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:301;4949:715;;;;;;;:::o;775:1210:6:-;1381:20;1434:9;1533:13;1011:1;998:9;;:14;990:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1154:7;:14;1140:10;:28;;1132:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1292:1;1278:10;:15;;1270:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;469:3;1381:38;;1446:1;1434:13;;1429:433;1453:7;:14;1449:1;:18;1429:433;;;1549:7;1557:1;1549:10;;;;;;;;;;;;;;;;;;1533:26;;1590:1;1581:5;:10;;;;:38;;;;;469:3;1595:24;;:5;:24;;;;1581:38;1573:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1737:1;1720:6;:13;1727:5;1720:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1712:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1812:5;1789:6;:20;1796:12;1789:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1846:5;1831:20;;1469:3;;;;;;;1429:433;;;469:3;1871:6;:20;1878:12;1871:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1932:7;:14;1919:10;:27;;;;1968:10;1956:9;:22;;;;775:1210;;;;;:::o;606:409:5:-;720:1;691:7;:25;539:3;691:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;683:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;539:3;773:7;:25;539:3;773:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;837:1;831:2;:7;;;;827:181;;;932:40;952:2;956:4;962:9;932:19;:40::i;:::-;924:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:181;606:409;;:::o;1002:914:12:-;1104:7;1113:9;1124;1424:3;1418:4;1414:14;1486:4;1472:12;1468:23;1456:10;1452:40;1446:47;1441:52;;1551:4;1537:12;1533:23;1521:10;1517:40;1511:47;1506:52;;1895:4;1886;1872:12;1868:23;1856:10;1852:40;1846:47;1842:58;1837:63;;1380:530;;;;;;:::o;867:309:3:-;976:12;1158:1;1155;1148:4;1142:11;1135:4;1129;1125:15;1118:5;1114:2;1107:5;1102:58;1091:69;;1077:93;;;;;;:::o;1182:303::-;1284:12;1467:1;1464;1457:4;1451:11;1444:4;1438;1434:15;1430:2;1423:5;1410:59;1399:70;;1385:94;;;;;:::o;1491:261::-;1560:19;1730:4;1724:11;1717:4;1711;1707:15;1704:1;1697:39;1682:54;;1668:78;;;:::o;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", - "source": "pragma solidity 0.4.24;\nimport \"./base/BaseSafe.sol\";\nimport \"./common/MasterCopy.sol\";\nimport \"./common/SignatureDecoder.sol\";\nimport \"./common/SecuredTokenTransfer.sol\";\nimport \"./interfaces/ISignatureValidator.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 string public constant NAME = \"Gnosis Safe\";\n string public constant VERSION = \"0.0.2\";\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 dataGas,uint256 gasPrice,address gasToken,address refundReceiver,uint256 nonce)\"\n //);\n bytes32 public constant SAFE_TX_TYPEHASH = 0x14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b20;\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 function setup(address[] _owners, uint256 _threshold, address to, bytes data)\n public\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\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 dataGas Gas costs for data used to trigger the safe transaction and to pay the payment transfer\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 data,\n Enum.Operation operation,\n uint256 safeTxGas,\n uint256 dataGas,\n uint256 gasPrice,\n address gasToken,\n address refundReceiver,\n bytes signatures\n )\n public\n returns (bool success)\n {\n uint256 startGas = gasleft();\n bytes memory txHashData = encodeTransactionData(\n to, value, data, operation, // Transaction info\n safeTxGas, dataGas, gasPrice, gasToken, refundReceiver, // Payment info\n nonce\n );\n require(checkSignatures(keccak256(txHashData), txHashData, signatures, true), \"Invalid signatures provided\");\n // Increase nonce and execute transaction.\n nonce++;\n require(gasleft() >= safeTxGas, \"Not enough gas to execute safe transaction\");\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 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(startGas, dataGas, gasPrice, gasToken, refundReceiver);\n }\n }\n\n function handlePayment(\n uint256 gasUsed,\n uint256 dataGas,\n uint256 gasPrice,\n address gasToken,\n address refundReceiver\n )\n private\n {\n uint256 amount = ((gasUsed - gasleft()) + dataGas) * gasPrice;\n // solium-disable-next-line security/no-tx-origin\n address 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 Should return whether the signature provided is valid for the provided data, hash\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 * @return a bool upon valid or invalid signature with corresponding _data\n */\n function checkSignatures(bytes32 dataHash, bytes data, bytes signatures, bool consumeHash)\n internal\n returns (bool)\n {\n // Check that the provided signature data is not too short\n if (signatures.length < threshold * 65) {\n return false;\n }\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(r);\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 if (!ISignatureValidator(currentOwner).isValidSignature(data, contractSignature)) {\n return false;\n }\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(r);\n // Hashes are automatically approved by the sender of the message or when they have been pre-approved via a separate transaction\n if (msg.sender != currentOwner && approvedHashes[currentOwner][dataHash] == 0) {\n return false;\n }\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 if (currentOwner <= lastOwner || owners[currentOwner] == 0) {\n return false;\n }\n lastOwner = currentOwner;\n }\n return true;\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 data, Enum.Operation operation)\n public\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 public\n {\n require(owners[msg.sender] != 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 _data)\n public\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 _data, bytes _signature)\n public\n returns (bool isValid)\n {\n bytes32 messageHash = getMessageHash(_data);\n if (_signature.length == 0) {\n isValid = signedMessages[messageHash] != 0;\n } else {\n // consumeHash needs to be false, as the state should not be changed\n isValid = checkSignatures(messageHash, _data, _signature, false);\n }\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 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(1), 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 dataGas 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 data,\n Enum.Operation operation,\n uint256 safeTxGas,\n uint256 dataGas,\n uint256 gasPrice,\n address gasToken,\n address refundReceiver,\n uint256 _nonce\n )\n public\n view\n returns (bytes)\n {\n bytes32 safeTxHash = keccak256(\n abi.encode(SAFE_TX_TYPEHASH, to, value, keccak256(data), operation, safeTxGas, dataGas, gasPrice, gasToken, refundReceiver, _nonce)\n );\n return abi.encodePacked(byte(0x19), byte(1), 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 dataGas 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 data,\n Enum.Operation operation,\n uint256 safeTxGas,\n uint256 dataGas,\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, dataGas, gasPrice, gasToken, refundReceiver, _nonce));\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "exportedSymbols": { "GnosisSafe": [ - 692 + 773 ] }, - "id": 693, + "id": 774, "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:0" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", "file": "./base/BaseSafe.sol", "id": 2, "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 783, + "scope": 774, + "sourceUnit": 864, "src": "24:29:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", "file": "./common/MasterCopy.sol", "id": 3, "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1694, + "scope": 774, + "sourceUnit": 1840, "src": "54:33:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", "file": "./common/SignatureDecoder.sol", "id": 4, "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1792, + "scope": 774, + "sourceUnit": 1938, "src": "88:39:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", "file": "./common/SecuredTokenTransfer.sol", "id": 5, "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1719, + "scope": 774, + "sourceUnit": 1865, "src": "128:43:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", "file": "./interfaces/ISignatureValidator.sol", "id": 6, "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1804, + "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": 7, + "id": 8, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1693, - "src": "557:10:0", + "referencedDeclaration": 1839, + "src": "591:10:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$1693", + "typeIdentifier": "t_contract$_MasterCopy_$1839", "typeString": "contract MasterCopy" } }, - "id": 8, + "id": 9, "nodeType": "InheritanceSpecifier", - "src": "557:10:0" + "src": "591:10:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 9, + "id": 10, "name": "BaseSafe", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 782, - "src": "569:8:0", + "referencedDeclaration": 863, + "src": "603:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_BaseSafe_$782", + "typeIdentifier": "t_contract$_BaseSafe_$863", "typeString": "contract BaseSafe" } }, - "id": 10, + "id": 11, "nodeType": "InheritanceSpecifier", - "src": "569:8:0" + "src": "603:8:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 11, + "id": 12, "name": "SignatureDecoder", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1791, - "src": "579:16:0", + "referencedDeclaration": 1937, + "src": "613:16:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureDecoder_$1791", + "typeIdentifier": "t_contract$_SignatureDecoder_$1937", "typeString": "contract SignatureDecoder" } }, - "id": 12, + "id": 13, "nodeType": "InheritanceSpecifier", - "src": "579:16:0" + "src": "613:16:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 13, + "id": 14, "name": "SecuredTokenTransfer", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1718, - "src": "597:20:0", + "referencedDeclaration": 1864, + "src": "631:20:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1718", + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1864", "typeString": "contract SecuredTokenTransfer" } }, - "id": 14, + "id": 15, "nodeType": "InheritanceSpecifier", - "src": "597:20:0" + "src": "631:20:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 15, + "id": 16, "name": "ISignatureValidator", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1803, - "src": "619:19:0", + "referencedDeclaration": 2080, + "src": "653:19:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISignatureValidator_$1803", + "typeIdentifier": "t_contract$_ISignatureValidator_$2080", "typeString": "contract ISignatureValidator" } }, - "id": 16, + "id": 17, "nodeType": "InheritanceSpecifier", - "src": "619:19:0" + "src": "653:19:0" } ], "contractDependencies": [ - 782, - 892, - 1212, - 1652, - 1666, - 1693, - 1718, - 1735, - 1791, - 1803 + 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": 692, + "id": 773, "linearizedBaseContracts": [ - 692, - 1803, - 1718, - 1791, - 782, - 1652, - 1212, - 892, - 1666, - 1693, - 1735 + 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": 19, + "id": 23, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "646:43:0", + "scope": 773, + "src": "713:43:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -985,10 +1036,10 @@ "typeString": "string" }, "typeName": { - "id": 17, + "id": 21, "name": "string", "nodeType": "ElementaryTypeName", - "src": "646:6:0", + "src": "713:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -997,14 +1048,14 @@ "value": { "argumentTypes": null, "hexValue": "476e6f7369732053616665", - "id": 18, + "id": 22, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "676:13:0", + "src": "743:13:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_72ec6775392f699e8ffd72b7c600556d49bdc746bf22bce93d3ae6019cdaff63", @@ -1016,11 +1067,11 @@ }, { "constant": true, - "id": 22, + "id": 26, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "695:40:0", + "scope": 773, + "src": "762:40:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1028,10 +1079,10 @@ "typeString": "string" }, "typeName": { - "id": 20, + "id": 24, "name": "string", "nodeType": "ElementaryTypeName", - "src": "695:6:0", + "src": "762:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1039,31 +1090,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e32", - "id": 21, + "hexValue": "312e302e30", + "id": 25, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "728:7:0", + "src": "795:7:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" + "typeIdentifier": "t_stringliteral_06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c", + "typeString": "literal_string \"1.0.0\"" }, - "value": "0.0.2" + "value": "1.0.0" }, "visibility": "public" }, { "constant": true, - "id": 25, + "id": 29, "name": "DOMAIN_SEPARATOR_TYPEHASH", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "820:118:0", + "scope": 773, + "src": "887:118:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1071,10 +1122,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 23, + "id": 27, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "820:7:0", + "src": "887:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1083,14 +1134,14 @@ "value": { "argumentTypes": null, "hexValue": "307830333561666638336438363933376433356233326530346630646463366666343639323930656566326631623639326438613831356338393430346434373439", - "id": 24, + "id": 28, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "872:66:0", + "src": "939:66:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1517718281442037948617199096126532355110765202990829672390711201829802035017_by_1", @@ -1102,11 +1153,11 @@ }, { "constant": true, - "id": 28, + "id": 32, "name": "SAFE_TX_TYPEHASH", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1148:109:0", + "scope": 773, + "src": "1215:109:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1114,10 +1165,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 26, + "id": 30, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1148:7:0", + "src": "1215:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1125,31 +1176,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "307831346434363162633734313233363765393234363337623336336337626632396238663437653266383438363966343432366535363333643861663437623230", - "id": 27, + "hexValue": "307862623833313064343836333638646236626436663834393430326664643733616435336433313662356134623236343461643665666530663934313238366438", + "id": 31, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1191:66:0", + "src": "1258:66:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_9421503099487675527562227662599058764916562750590033657944341861770225548064_by_1", - "typeString": "int_const 9421...(68 digits omitted)...8064" + "typeIdentifier": "t_rational_84814075808141314178395468817534025465894426928601295766380145544921651250904_by_1", + "typeString": "int_const 8481...(69 digits omitted)...0904" }, - "value": "0x14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b20" + "value": "0xbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d8" }, "visibility": "public" }, { "constant": true, - "id": 31, + "id": 35, "name": "SAFE_MSG_TYPEHASH", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1329:110:0", + "scope": 773, + "src": "1396:110:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1157,10 +1208,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 29, + "id": 33, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1329:7:0", + "src": "1396:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1169,14 +1220,14 @@ "value": { "argumentTypes": null, "hexValue": "307836306233636266386234613232336436386436343162336236646466396132393865376633333731306366336433613964313134366235613631353066626361", - "id": 30, + "id": 34, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1373:66:0", + "src": "1440:66:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_43739706848186989041152069077571617734008543096732098246335109361212071148490_by_1", @@ -1189,21 +1240,21 @@ { "anonymous": false, "documentation": null, - "id": 35, + "id": 39, "name": "ExecutionFailed", "nodeType": "EventDefinition", "parameters": { - "id": 34, + "id": 38, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33, + "id": 37, "indexed": false, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 35, - "src": "1468:14:0", + "scope": 39, + "src": "1535:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1211,10 +1262,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 32, + "id": 36, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1468:7:0", + "src": "1535:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1224,17 +1275,17 @@ "visibility": "internal" } ], - "src": "1467:16:0" + "src": "1534:16:0" }, - "src": "1446:38:0" + "src": "1513:38:0" }, { "constant": false, - "id": 37, + "id": 41, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1490:20:0", + "scope": 773, + "src": "1557:20:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1242,10 +1293,10 @@ "typeString": "uint256" }, "typeName": { - "id": 36, + "id": 40, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1490:7:0", + "src": "1557:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1256,11 +1307,11 @@ }, { "constant": false, - "id": 39, + "id": 43, "name": "domainSeparator", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1516:30:0", + "scope": 773, + "src": "1583:30:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1268,10 +1319,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 38, + "id": 42, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1516:7:0", + "src": "1583:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1282,11 +1333,11 @@ }, { "constant": false, - "id": 43, + "id": 47, "name": "signedMessages", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1649:49:0", + "scope": 773, + "src": "1716:49:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1294,28 +1345,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 42, + "id": 46, "keyType": { - "id": 40, + "id": 44, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1657:7:0", + "src": "1724:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1649:27:0", + "src": "1716:27:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 41, + "id": 45, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1668:7:0", + "src": "1735:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1327,11 +1378,11 @@ }, { "constant": false, - "id": 49, + "id": 53, "name": "approvedHashes", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1809:69:0", + "scope": 773, + "src": "1876:69:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1339,46 +1390,46 @@ "typeString": "mapping(address => mapping(bytes32 => uint256))" }, "typeName": { - "id": 48, + "id": 52, "keyType": { - "id": 44, + "id": 48, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1817:7:0", + "src": "1884:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1809:47:0", + "src": "1876:47:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", "typeString": "mapping(address => mapping(bytes32 => uint256))" }, "valueType": { - "id": 47, + "id": 51, "keyType": { - "id": 45, + "id": 49, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1836:7:0", + "src": "1903:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1828:27:0", + "src": "1895:27:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 46, + "id": 50, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1847:7:0", + "src": "1914:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1391,9 +1442,9 @@ }, { "body": { - "id": 85, + "id": 108, "nodeType": "Block", - "src": "2295:211:0", + "src": "2676:610:0", "statements": [ { "expression": { @@ -1405,19 +1456,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 64, + "id": 74, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 62, + "id": 72, "name": "domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "2313:15:0", + "referencedDeclaration": 43, + "src": "2694:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1428,14 +1479,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 63, + "id": 73, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2332:1:0", + "src": "2713:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1443,7 +1494,7 @@ }, "value": "0" }, - "src": "2313:20:0", + "src": "2694:20:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1452,14 +1503,14 @@ { "argumentTypes": null, "hexValue": "446f6d61696e20536570617261746f7220616c72656164792073657421", - "id": 65, + "id": 75, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2335:31:0", + "src": "2716:31:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a2e1f2db9cd32eaa6a2caa3d6caa726a30dc0417d866440bfe13d6a6d030e5e2", @@ -1479,21 +1530,21 @@ "typeString": "literal_string \"Domain Separator already set!\"" } ], - "id": 61, + "id": 71, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2305:7:0", + "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": 66, + "id": 76, "isConstant": false, "isLValue": false, "isPure": false, @@ -1501,32 +1552,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2305:62:0", + "src": "2686:62:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 67, + "id": 77, "nodeType": "ExpressionStatement", - "src": "2305:62:0" + "src": "2686:62:0" }, { "expression": { "argumentTypes": null, - "id": 76, + "id": 86, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 68, + "id": 78, "name": "domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "2377:15:0", + "referencedDeclaration": 43, + "src": "2758:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1542,12 +1593,12 @@ "arguments": [ { "argumentTypes": null, - "id": 72, + "id": 82, "name": "DOMAIN_SEPARATOR_TYPEHASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "2416:25:0", + "referencedDeclaration": 29, + "src": "2797:25:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1555,14 +1606,14 @@ }, { "argumentTypes": null, - "id": 73, + "id": 83, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4052, - "src": "2443:4:0", + "referencedDeclaration": 4406, + "src": "2824:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$692", + "typeIdentifier": "t_contract$_GnosisSafe_$773", "typeString": "contract GnosisSafe" } } @@ -1574,24 +1625,24 @@ "typeString": "bytes32" }, { - "typeIdentifier": "t_contract$_GnosisSafe_$692", + "typeIdentifier": "t_contract$_GnosisSafe_$773", "typeString": "contract GnosisSafe" } ], "expression": { "argumentTypes": null, - "id": 70, + "id": 80, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "2405:3:0", + "referencedDeclaration": 4353, + "src": "2786:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 71, + "id": 81, "isConstant": false, "isLValue": false, "isPure": true, @@ -1599,13 +1650,13 @@ "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2405:10:0", + "src": "2786:10:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 74, + "id": 84, "isConstant": false, "isLValue": false, "isPure": false, @@ -1613,7 +1664,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2405:43:0", + "src": "2786:43:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1627,18 +1678,18 @@ "typeString": "bytes memory" } ], - "id": 69, + "id": 79, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "2395:9:0", + "referencedDeclaration": 4360, + "src": "2776:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 75, + "id": 85, "isConstant": false, "isLValue": false, "isPure": false, @@ -1646,21 +1697,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2395:54:0", + "src": "2776:54:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "2377:72:0", + "src": "2758:72:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 77, + "id": 87, "nodeType": "ExpressionStatement", - "src": "2377:72:0" + "src": "2758:72:0" }, { "expression": { @@ -1668,25 +1719,25 @@ "arguments": [ { "argumentTypes": null, - "id": 79, + "id": 89, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "2469:7:0", + "referencedDeclaration": 56, + "src": "2850:7:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" } }, { "argumentTypes": null, - "id": 80, + "id": 90, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "2478:10:0", + "referencedDeclaration": 58, + "src": "2859:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1694,12 +1745,12 @@ }, { "argumentTypes": null, - "id": 81, + "id": 91, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "2490:2:0", + "referencedDeclaration": 60, + "src": "2871:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1707,23 +1758,23 @@ }, { "argumentTypes": null, - "id": 82, + "id": 92, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "2494:4:0", + "referencedDeclaration": 62, + "src": "2875:4:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" }, { "typeIdentifier": "t_uint256", @@ -1734,22 +1785,22 @@ "typeString": "address" }, { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } ], - "id": 78, + "id": 88, "name": "setupSafe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 781, - "src": "2459:9:0", + "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": 83, + "id": 93, "isConstant": false, "isLValue": false, "isPure": false, @@ -1757,58 +1808,253 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2459:40:0", + "src": "2840:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 84, + "id": 94, "nodeType": "ExpressionStatement", - "src": "2459:40:0" + "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.", - "id": 86, + "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, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 59, + "id": 69, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 52, + "id": 56, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2213:17:0", + "scope": 109, + "src": "2502:26:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 50, + "id": 54, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2213:7:0", + "src": "2502:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 51, + "id": 55, "length": null, "nodeType": "ArrayTypeName", - "src": "2213:9:0", + "src": "2502:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1819,11 +2065,11 @@ }, { "constant": false, - "id": 54, + "id": 58, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2232:18:0", + "scope": 109, + "src": "2530:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1831,10 +2077,10 @@ "typeString": "uint256" }, "typeName": { - "id": 53, + "id": 57, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2232:7:0", + "src": "2530:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1845,11 +2091,11 @@ }, { "constant": false, - "id": 56, + "id": 60, "name": "to", "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2252:10:0", + "scope": 109, + "src": "2550:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1857,10 +2103,11 @@ "typeString": "address" }, "typeName": { - "id": 55, + "id": 59, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2252:7:0", + "src": "2550:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1871,22 +2118,22 @@ }, { "constant": false, - "id": 58, + "id": 62, "name": "data", "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2264:10:0", + "scope": 109, + "src": "2562:19:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 57, + "id": 61, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2264:5:0", + "src": "2562:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1894,107 +2141,120 @@ }, "value": null, "visibility": "internal" - } - ], - "src": "2212:63:0" - }, - "payable": false, - "returnParameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [], - "src": "2295:0:0" - }, - "scope": 692, - "src": "2198:308:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 197, - "nodeType": "Block", - "src": "3833:1110:0", - "statements": [ + }, { - "assignments": [ - 112 - ], - "declarations": [ - { - "constant": false, - "id": 112, - "name": "startGas", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3843:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 111, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3843:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "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" } - ], - "id": 115, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 113, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "3862:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3862:9:0", + }, + "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" } }, - "nodeType": "VariableDeclarationStatement", - "src": "3843:28:0" + "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": [ - 117 + 135 ], "declarations": [ { "constant": false, - "id": 117, + "id": 135, "name": "txHashData", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3881:23:0", + "scope": 225, + "src": "4694:23:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2002,10 +2262,10 @@ "typeString": "bytes" }, "typeName": { - "id": 116, + "id": 134, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3881:5:0", + "src": "4694:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2015,18 +2275,18 @@ "visibility": "internal" } ], - "id": 130, + "id": 148, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 119, + "id": 137, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "3942:2:0", + "referencedDeclaration": 111, + "src": "4755:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2034,12 +2294,12 @@ }, { "argumentTypes": null, - "id": 120, + "id": 138, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "3946:5:0", + "referencedDeclaration": 113, + "src": "4759:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2047,38 +2307,38 @@ }, { "argumentTypes": null, - "id": 121, + "id": 139, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "3953:4:0", + "referencedDeclaration": 115, + "src": "4766:4:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } }, { "argumentTypes": null, - "id": 122, + "id": 140, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "3959:9:0", + "referencedDeclaration": 117, + "src": "4772:9:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 123, + "id": 141, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4002:9:0", + "referencedDeclaration": 119, + "src": "4815:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2086,12 +2346,12 @@ }, { "argumentTypes": null, - "id": 124, - "name": "dataGas", + "id": 142, + "name": "baseGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "4013:7:0", + "referencedDeclaration": 121, + "src": "4826:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2099,12 +2359,12 @@ }, { "argumentTypes": null, - "id": 125, + "id": 143, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4022:8:0", + "referencedDeclaration": 123, + "src": "4835:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2112,12 +2372,12 @@ }, { "argumentTypes": null, - "id": 126, + "id": 144, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 102, - "src": "4032:8:0", + "referencedDeclaration": 125, + "src": "4845:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2125,25 +2385,25 @@ }, { "argumentTypes": null, - "id": 127, + "id": 145, "name": "refundReceiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 104, - "src": "4042:14:0", + "referencedDeclaration": 127, + "src": "4855:14:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, { "argumentTypes": null, - "id": 128, + "id": 146, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "4086:5:0", + "referencedDeclaration": 41, + "src": "4899:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2161,11 +2421,11 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -2185,26 +2445,26 @@ "typeString": "address" }, { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 118, + "id": 136, "name": "encodeTransactionData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 650, - "src": "3907:21:0", + "referencedDeclaration": 731, + "src": "4720:21:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "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": 129, + "id": 147, "isConstant": false, "isLValue": false, "isPure": false, @@ -2212,14 +2472,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3907:194:0", + "src": "4720:194:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "3881:220:0" + "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": { @@ -2230,129 +2524,37 @@ "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 134, - "name": "txHashData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4145:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 133, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4135:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4135:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 136, + "id": 154, "name": "txHashData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4158:10:0", + "referencedDeclaration": 135, + "src": "5018:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } - }, - { - "argumentTypes": null, - "id": 137, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "4170:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4182: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_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" } ], - "id": 132, - "name": "checkSignatures", + "id": 153, + "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "4119:15:0", + "referencedDeclaration": 4360, + "src": "5008:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory,bytes memory,bool) returns (bool)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 139, + "id": 155, "isConstant": false, "isLValue": false, "isPure": false, @@ -2360,57 +2562,88 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4119:68:0", + "src": "5008:21:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, { "argumentTypes": null, - "hexValue": "496e76616c6964207369676e6174757265732070726f7669646564", - "id": 140, + "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": "string", + "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4189:29:0", + "src": "5055:4:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_85bcea44c930431ef19052d068cc504a81260341ae6c5ee84bb5a38ec55acf05", - "typeString": "literal_string \"Invalid signatures provided\"" + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "value": "Invalid signatures provided" + "value": "true" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, { - "typeIdentifier": "t_stringliteral_85bcea44c930431ef19052d068cc504a81260341ae6c5ee84bb5a38ec55acf05", - "typeString": "literal_string \"Invalid signatures provided\"" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "id": 131, - "name": "require", + "id": 152, + "name": "checkSignatures", "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "4111:7:0", + "overloadedDeclarations": [], + "referencedDeclaration": 506, + "src": "4992:15:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "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": 141, + "id": 159, "isConstant": false, "isLValue": false, "isPure": false, @@ -2418,49 +2651,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4111:108:0", + "src": "4992:68:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 142, + "id": 160, "nodeType": "ExpressionStatement", - "src": "4111:108:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4280:7:0", - "subExpression": { - "argumentTypes": null, - "id": 143, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "4280:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 145, - "nodeType": "ExpressionStatement", - "src": "4280:7:0" + "src": "4992:68:0" }, { "expression": { @@ -2472,7 +2671,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 150, + "id": 165, "isConstant": false, "isLValue": false, "isPure": false, @@ -2482,18 +2681,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 147, + "id": 162, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "4305:7:0", + "referencedDeclaration": 4359, + "src": "5078:7:0", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 148, + "id": 163, "isConstant": false, "isLValue": false, "isPure": false, @@ -2501,7 +2700,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4305:9:0", + "src": "5078:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2511,18 +2710,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 149, + "id": 164, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4318:9:0", + "referencedDeclaration": 119, + "src": "5091:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4305:22:0", + "src": "5078:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2531,14 +2730,14 @@ { "argumentTypes": null, "hexValue": "4e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6e", - "id": 151, + "id": 166, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4329:44:0", + "src": "5102:44:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", @@ -2558,21 +2757,21 @@ "typeString": "literal_string \"Not enough gas to execute safe transaction\"" } ], - "id": 146, + "id": 161, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "4297:7:0", + "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": 152, + "id": 167, "isConstant": false, "isLValue": false, "isPure": false, @@ -2580,32 +2779,98 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4297:77:0", + "src": "5070:77:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 153, + "id": 168, "nodeType": "ExpressionStatement", - "src": "4297:77:0" + "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": 172, + "id": 192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 154, + "id": 174, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "4491:7:0", + "referencedDeclaration": 132, + "src": "5301:7:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2618,12 +2883,12 @@ "arguments": [ { "argumentTypes": null, - "id": 156, + "id": 176, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "4509:2:0", + "referencedDeclaration": 111, + "src": "5319:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2631,12 +2896,12 @@ }, { "argumentTypes": null, - "id": 157, + "id": 177, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "4513:5:0", + "referencedDeclaration": 113, + "src": "5323:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2644,27 +2909,27 @@ }, { "argumentTypes": null, - "id": 158, + "id": 178, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "4520:4:0", + "referencedDeclaration": 115, + "src": "5330:4:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } }, { "argumentTypes": null, - "id": 159, + "id": 179, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "4526:9:0", + "referencedDeclaration": 117, + "src": "5336:9:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -2676,7 +2941,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 166, + "id": 186, "isConstant": false, "isLValue": false, "isPure": false, @@ -2687,19 +2952,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 162, + "id": 182, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 160, + "id": 180, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4537:9:0", + "referencedDeclaration": 119, + "src": "5347:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2710,14 +2975,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 161, + "id": 181, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4550:1:0", + "src": "5360:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2725,7 +2990,7 @@ }, "value": "0" }, - "src": "4537:14:0", + "src": "5347:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2739,19 +3004,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 165, + "id": 185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 163, + "id": 183, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4555:8:0", + "referencedDeclaration": 123, + "src": "5365:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2762,14 +3027,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 164, + "id": 184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4567:1:0", + "src": "5377:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2777,13 +3042,13 @@ }, "value": "0" }, - "src": "4555:13:0", + "src": "5365:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4537:31:0", + "src": "5347:31:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2791,41 +3056,41 @@ }, "falseExpression": { "argumentTypes": null, - "id": 169, + "id": 189, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4583:9:0", + "referencedDeclaration": 119, + "src": "5393:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 170, + "id": 190, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "4537:55:0", + "src": "5347:55:0", "trueExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 167, + "id": 187, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "4571:7:0", + "referencedDeclaration": 4359, + "src": "5381:7:0", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 168, + "id": 188, "isConstant": false, "isLValue": false, "isPure": false, @@ -2833,7 +3098,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4571:9:0", + "src": "5381:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2856,11 +3121,11 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -2868,18 +3133,18 @@ "typeString": "uint256" } ], - "id": 155, + "id": 175, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "4501:7:0", + "referencedDeclaration": 937, + "src": "5311:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", + "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": 171, + "id": 191, "isConstant": false, "isLValue": false, "isPure": false, @@ -2887,26 +3152,141 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4501:92:0", + "src": "5311:92:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4491:102:0", + "src": "5301:102:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 173, + "id": 193, "nodeType": "ExpressionStatement", - "src": "4491:102:0" + "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": 175, + "id": 203, "isConstant": false, "isLValue": false, "isPure": false, @@ -2914,15 +3294,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4607:8:0", + "src": "5459:8:0", "subExpression": { "argumentTypes": null, - "id": 174, + "id": 202, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "4608:7:0", + "referencedDeclaration": 132, + "src": "5460:7:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2934,13 +3314,13 @@ } }, "falseBody": null, - "id": 183, + "id": 211, "nodeType": "IfStatement", - "src": "4603:82:0", + "src": "5455:82:0", "trueBody": { - "id": 182, + "id": 210, "nodeType": "Block", - "src": "4617:68:0", + "src": "5469:68:0", "statements": [ { "eventCall": { @@ -2951,12 +3331,12 @@ "arguments": [ { "argumentTypes": null, - "id": 178, + "id": 206, "name": "txHashData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4662:10:0", + "referencedDeclaration": 135, + "src": "5514:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2970,18 +3350,18 @@ "typeString": "bytes memory" } ], - "id": 177, + "id": 205, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4652:9:0", + "referencedDeclaration": 4360, + "src": "5504:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 179, + "id": 207, "isConstant": false, "isLValue": false, "isPure": false, @@ -2989,7 +3369,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4652:21:0", + "src": "5504:21:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3003,18 +3383,18 @@ "typeString": "bytes32" } ], - "id": 176, + "id": 204, "name": "ExecutionFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "4636:15:0", + "referencedDeclaration": 39, + "src": "5488:15:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 180, + "id": 208, "isConstant": false, "isLValue": false, "isPure": false, @@ -3022,15 +3402,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4636:38:0", + "src": "5488:38:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 181, + "id": 209, "nodeType": "EmitStatement", - "src": "4631:43:0" + "src": "5483:43:0" } ] } @@ -3042,19 +3422,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 186, + "id": 214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 184, + "id": 212, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4830:8:0", + "referencedDeclaration": 123, + "src": "5682:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3065,14 +3445,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 185, + "id": 213, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4841:1:0", + "src": "5693:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3080,20 +3460,20 @@ }, "value": "0" }, - "src": "4830:12:0", + "src": "5682:12:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 196, + "id": 224, "nodeType": "IfStatement", - "src": "4826:111:0", + "src": "5678:110:0", "trueBody": { - "id": 195, + "id": 223, "nodeType": "Block", - "src": "4844:93:0", + "src": "5696:92:0", "statements": [ { "expression": { @@ -3101,12 +3481,12 @@ "arguments": [ { "argumentTypes": null, - "id": 188, - "name": "startGas", + "id": 216, + "name": "gasUsed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4872:8:0", + "referencedDeclaration": 170, + "src": "5724:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3114,12 +3494,12 @@ }, { "argumentTypes": null, - "id": 189, - "name": "dataGas", + "id": 217, + "name": "baseGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "4882:7:0", + "referencedDeclaration": 121, + "src": "5733:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3127,12 +3507,12 @@ }, { "argumentTypes": null, - "id": 190, + "id": 218, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4891:8:0", + "referencedDeclaration": 123, + "src": "5742:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3140,12 +3520,12 @@ }, { "argumentTypes": null, - "id": 191, + "id": 219, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 102, - "src": "4901:8:0", + "referencedDeclaration": 125, + "src": "5752:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3153,15 +3533,15 @@ }, { "argumentTypes": null, - "id": 192, + "id": 220, "name": "refundReceiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 104, - "src": "4911:14:0", + "referencedDeclaration": 127, + "src": "5762:14:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], @@ -3184,22 +3564,22 @@ "typeString": "address" }, { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], - "id": 187, + "id": 215, "name": "handlePayment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 262, - "src": "4858:13:0", + "referencedDeclaration": 287, + "src": "5710:13:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$returns$__$", - "typeString": "function (uint256,uint256,uint256,address,address)" + "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": 193, + "id": 221, "isConstant": false, "isLValue": false, "isPure": false, @@ -3207,40 +3587,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4858:68:0", + "src": "5710:67:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 194, + "id": 222, "nodeType": "ExpressionStatement", - "src": "4858:68:0" + "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 dataGas Gas costs for data used to trigger the safe transaction and to pay the payment transfer\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": 198, + "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, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "execTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 107, + "id": 130, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 88, + "id": 111, "name": "to", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3527:10:0", + "scope": 226, + "src": "4350:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3248,10 +3627,11 @@ "typeString": "address" }, "typeName": { - "id": 87, + "id": 110, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3527:7:0", + "src": "4350:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3262,11 +3642,11 @@ }, { "constant": false, - "id": 90, + "id": 113, "name": "value", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3547:13:0", + "scope": 226, + "src": "4370:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3274,10 +3654,10 @@ "typeString": "uint256" }, "typeName": { - "id": 89, + "id": 112, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3547:7:0", + "src": "4370:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3288,22 +3668,22 @@ }, { "constant": false, - "id": 92, + "id": 115, "name": "data", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3570:10:0", + "scope": 226, + "src": "4393:19:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 91, + "id": 114, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3570:5:0", + "src": "4393:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3314,26 +3694,26 @@ }, { "constant": false, - "id": 94, + "id": 117, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3590:24:0", + "scope": 226, + "src": "4422:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 93, + "id": 116, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "3590:14:0", + "referencedDeclaration": 1802, + "src": "4422:14:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -3342,11 +3722,11 @@ }, { "constant": false, - "id": 96, + "id": 119, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3624:17:0", + "scope": 226, + "src": "4456:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3354,10 +3734,10 @@ "typeString": "uint256" }, "typeName": { - "id": 95, + "id": 118, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3624:7:0", + "src": "4456:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3368,11 +3748,11 @@ }, { "constant": false, - "id": 98, - "name": "dataGas", + "id": 121, + "name": "baseGas", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3651:15:0", + "scope": 226, + "src": "4483:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3380,10 +3760,10 @@ "typeString": "uint256" }, "typeName": { - "id": 97, + "id": 120, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3651:7:0", + "src": "4483:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3394,11 +3774,11 @@ }, { "constant": false, - "id": 100, + "id": 123, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3676:16:0", + "scope": 226, + "src": "4508:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3406,10 +3786,10 @@ "typeString": "uint256" }, "typeName": { - "id": 99, + "id": 122, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3676:7:0", + "src": "4508:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3420,11 +3800,11 @@ }, { "constant": false, - "id": 102, + "id": 125, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3702:16:0", + "scope": 226, + "src": "4534:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3432,10 +3812,11 @@ "typeString": "address" }, "typeName": { - "id": 101, + "id": 124, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3702:7:0", + "src": "4534:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3446,25 +3827,26 @@ }, { "constant": false, - "id": 104, + "id": 127, "name": "refundReceiver", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3728:22:0", + "scope": 226, + "src": "4560:30:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, "typeName": { - "id": 103, + "id": 126, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3728:7:0", + "src": "4560:15:0", + "stateMutability": "payable", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "value": null, @@ -3472,22 +3854,22 @@ }, { "constant": false, - "id": 106, + "id": 129, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3760:16:0", + "scope": 226, + "src": "4600:25:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 105, + "id": 128, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3760:5:0", + "src": "4600:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3497,20 +3879,19 @@ "visibility": "internal" } ], - "src": "3517:265:0" + "src": "4340:291:0" }, - "payable": false, "returnParameters": { - "id": 110, + "id": 133, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 109, + "id": 132, "name": "success", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3815:12:0", + "scope": 226, + "src": "4666:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3518,10 +3899,10 @@ "typeString": "bool" }, "typeName": { - "id": 108, + "id": 131, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3815:4:0", + "src": "4666:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3531,32 +3912,32 @@ "visibility": "internal" } ], - "src": "3814:14:0" + "src": "4665:14:0" }, - "scope": 692, - "src": "3493:1450:0", + "scope": 773, + "src": "4316:1478:0", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 261, + "id": 286, "nodeType": "Block", - "src": "5132:532:0", + "src": "5991:526:0", "statements": [ { "assignments": [ - 212 + 240 ], "declarations": [ { "constant": false, - "id": 212, + "id": 240, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5142:14:0", + "scope": 286, + "src": "6001:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3564,10 +3945,10 @@ "typeString": "uint256" }, "typeName": { - "id": 211, + "id": 239, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5142:7:0", + "src": "6001:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3577,227 +3958,185 @@ "visibility": "internal" } ], - "id": 223, + "id": 248, "initialValue": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ + "arguments": [ + { + "argumentTypes": null, + "id": 246, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "6043:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "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": 219, + "id": 242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "gasUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "5161:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 214, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "5171:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5171:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5161:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 217, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5160:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 218, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 202, - "src": "5184:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5160:31:0", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2044, + "src": "6018:11:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "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": 220, + }, + "id": 245, "isConstant": false, - "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5159:33:0", + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 1972, + "src": "6018:24:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 221, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 204, - "src": "5195:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5159:44:0", + "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": "5142:61:0" + "src": "6001:51:0" }, { "assignments": [ - 225 + 250 ], "declarations": [ { "constant": false, - "id": 225, + "id": 250, "name": "receiver", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5271:16:0", + "scope": 286, + "src": "6120:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, "typeName": { - "id": 224, + "id": 249, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5271:7:0", + "src": "6120:15:0", + "stateMutability": "payable", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "value": null, "visibility": "internal" } ], - "id": 235, + "id": 260, "initialValue": { "argumentTypes": null, "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, - "id": 230, + "id": 255, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 226, + "id": 251, "name": "refundReceiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "5290:14:0", + "referencedDeclaration": 236, + "src": "6147:14:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "BinaryOperation", @@ -3808,14 +4147,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 228, + "id": 253, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5316:1:0", + "src": "6173:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3831,20 +4170,20 @@ "typeString": "int_const 0" } ], - "id": 227, + "id": 252, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5308:7:0", + "src": "6165:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 229, + "id": 254, "isConstant": false, "isLValue": false, "isPure": true, @@ -3852,13 +4191,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5308:10:0", + "src": "6165:10:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "src": "5290:28:0", + "src": "6147:28:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3866,40 +4205,40 @@ }, "falseExpression": { "argumentTypes": null, - "id": 233, + "id": 258, "name": "refundReceiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "5333:14:0", + "referencedDeclaration": 236, + "src": "6190:14:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "id": 234, + "id": 259, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "5290:57:0", + "src": "6147:57:0", "trueExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 231, + "id": 256, "name": "tx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4027, - "src": "5321:2:0", + "referencedDeclaration": 4378, + "src": "6178:2:0", "typeDescriptions": { "typeIdentifier": "t_magic_transaction", "typeString": "tx" } }, - "id": 232, + "id": 257, "isConstant": false, "isLValue": false, "isPure": false, @@ -3907,19 +4246,19 @@ "memberName": "origin", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5321:9:0", + "src": "6178:9:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "VariableDeclarationStatement", - "src": "5271:76:0" + "src": "6120:84:0" }, { "condition": { @@ -3928,19 +4267,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 240, + "id": 265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 236, + "id": 261, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 206, - "src": "5361:8:0", + "referencedDeclaration": 234, + "src": "6218:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3954,14 +4293,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 238, + "id": 263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5381:1:0", + "src": "6238:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3977,20 +4316,20 @@ "typeString": "int_const 0" } ], - "id": 237, + "id": 262, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5373:7:0", + "src": "6230:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 239, + "id": 264, "isConstant": false, "isLValue": false, "isPure": true, @@ -3998,22 +4337,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5373:10:0", + "src": "6230:10:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "src": "5361:22:0", + "src": "6218:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 259, + "id": 284, "nodeType": "Block", - "src": "5545:113:0", + "src": "6398:113:0", "statements": [ { "expression": { @@ -4024,12 +4363,12 @@ "arguments": [ { "argumentTypes": null, - "id": 252, + "id": 277, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 206, - "src": "5581:8:0", + "referencedDeclaration": 234, + "src": "6434:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4037,25 +4376,25 @@ }, { "argumentTypes": null, - "id": 253, + "id": 278, "name": "receiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "5591:8:0", + "referencedDeclaration": 250, + "src": "6444:8:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, { "argumentTypes": null, - "id": 254, + "id": 279, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "5601:6:0", + "referencedDeclaration": 240, + "src": "6454:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4069,26 +4408,26 @@ "typeString": "address" }, { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 251, + "id": 276, "name": "transferToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1717, - "src": "5567:13:0", + "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": 255, + "id": 280, "isConstant": false, "isLValue": false, "isPure": false, @@ -4096,7 +4435,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5567:41:0", + "src": "6420:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4105,14 +4444,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e", - "id": 256, + "id": 281, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5610:36:0", + "src": "6463:36:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", @@ -4132,21 +4471,21 @@ "typeString": "literal_string \"Could not pay gas costs with token\"" } ], - "id": 250, + "id": 275, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "5559:7:0", + "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": 257, + "id": 282, "isConstant": false, "isLValue": false, "isPure": false, @@ -4154,25 +4493,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5559:88:0", + "src": "6412:88:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 258, + "id": 283, "nodeType": "ExpressionStatement", - "src": "5559:88:0" + "src": "6412:88:0" } ] }, - "id": 260, + "id": 285, "nodeType": "IfStatement", - "src": "5357:301:0", + "src": "6214:297:0", "trueBody": { - "id": 249, + "id": 274, "nodeType": "Block", - "src": "5385:154:0", + "src": "6242:150:0", "statements": [ { "expression": { @@ -4183,12 +4522,12 @@ "arguments": [ { "argumentTypes": null, - "id": 244, + "id": 269, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "5482:6:0", + "referencedDeclaration": 240, + "src": "6335:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4204,18 +4543,18 @@ ], "expression": { "argumentTypes": null, - "id": 242, + "id": 267, "name": "receiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "5468:8:0", + "referencedDeclaration": 250, + "src": "6321:8:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "id": 243, + "id": 268, "isConstant": false, "isLValue": false, "isPure": false, @@ -4223,13 +4562,13 @@ "memberName": "send", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5468:13:0", + "src": "6321:13:0", "typeDescriptions": { "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) returns (bool)" } }, - "id": 245, + "id": 270, "isConstant": false, "isLValue": false, "isPure": false, @@ -4237,7 +4576,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5468:21:0", + "src": "6321:21:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4246,14 +4585,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792067617320636f7374732077697468206574686572", - "id": 246, + "id": 271, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5491:36:0", + "src": "6344:36:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", @@ -4273,21 +4612,21 @@ "typeString": "literal_string \"Could not pay gas costs with ether\"" } ], - "id": 241, + "id": 266, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "5460:7:0", + "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": 247, + "id": 272, "isConstant": false, "isLValue": false, "isPure": false, @@ -4295,15 +4634,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5460:68:0", + "src": "6313:68:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 248, + "id": 273, "nodeType": "ExpressionStatement", - "src": "5460:68:0" + "src": "6313:68:0" } ] } @@ -4311,24 +4650,23 @@ ] }, "documentation": null, - "id": 262, + "id": 287, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "handlePayment", "nodeType": "FunctionDefinition", "parameters": { - "id": 209, + "id": 237, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 200, + "id": 228, "name": "gasUsed", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4981:15:0", + "scope": 287, + "src": "5832:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4336,10 +4674,10 @@ "typeString": "uint256" }, "typeName": { - "id": 199, + "id": 227, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4981:7:0", + "src": "5832:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4350,11 +4688,11 @@ }, { "constant": false, - "id": 202, - "name": "dataGas", + "id": 230, + "name": "baseGas", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5006:15:0", + "scope": 287, + "src": "5857:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4362,10 +4700,10 @@ "typeString": "uint256" }, "typeName": { - "id": 201, + "id": 229, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5006:7:0", + "src": "5857:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4376,11 +4714,11 @@ }, { "constant": false, - "id": 204, + "id": 232, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5031:16:0", + "scope": 287, + "src": "5882:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4388,10 +4726,10 @@ "typeString": "uint256" }, "typeName": { - "id": 203, + "id": 231, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5031:7:0", + "src": "5882:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4402,11 +4740,11 @@ }, { "constant": false, - "id": 206, + "id": 234, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5057:16:0", + "scope": 287, + "src": "5908:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4414,10 +4752,11 @@ "typeString": "address" }, "typeName": { - "id": 205, + "id": 233, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5057:7:0", + "src": "5908:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4428,199 +4767,248 @@ }, { "constant": false, - "id": 208, + "id": 236, "name": "refundReceiver", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5083:22:0", + "scope": 287, + "src": "5934:30:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, "typeName": { - "id": 207, + "id": 235, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5083:7:0", + "src": "5934:15:0", + "stateMutability": "payable", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "value": null, "visibility": "internal" } ], - "src": "4971:140:0" + "src": "5822:148:0" }, - "payable": false, "returnParameters": { - "id": 210, + "id": 238, "nodeType": "ParameterList", "parameters": [], - "src": "5132:0:0" + "src": "5991:0:0" }, - "scope": 692, - "src": "4949:715:0", + "scope": 773, + "src": "5800:717:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { - "id": 427, + "id": 505, "nodeType": "Block", - "src": "6415:2326:0", + "src": "7198:3618:0", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "id": 275, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "6496:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6496:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 277, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "6516:9:0", - "typeDescriptions": { + "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" } }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { + { "argumentTypes": null, - "hexValue": "3635", - "id": 278, + "hexValue": "5369676e617475726573206461746120746f6f2073686f7274", + "id": 306, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6528:2:0", + "src": "7323:27:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" + "typeIdentifier": "t_stringliteral_17122174e7c2d723217ce151aacf64aec6d32748978cfd1a9479e00b57ac7dd5", + "typeString": "literal_string \"Signatures data too short\"" }, - "value": "65" - }, - "src": "6516:14:0", + "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_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "src": "6496:34:0", + "id": 307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7275:76:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "falseBody": null, - "id": 284, - "nodeType": "IfStatement", - "src": "6492:77:0", - "trueBody": { - "id": 283, - "nodeType": "Block", - "src": "6532:37:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6553:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 274, - "id": 282, - "nodeType": "Return", - "src": "6546:12:0" - } - ] - } + "id": 308, + "nodeType": "ExpressionStatement", + "src": "7275:76:0" }, { "assignments": [ - 286 + 310 ], "declarations": [ { "constant": false, - "id": 286, + "id": 310, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6630:17:0", + "scope": 505, + "src": "7413:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4628,10 +5016,11 @@ "typeString": "address" }, "typeName": { - "id": 285, + "id": 309, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6630:7:0", + "src": "7413:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4641,21 +5030,21 @@ "visibility": "internal" } ], - "id": 290, + "id": 314, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 288, + "id": 312, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6658:1:0", + "src": "7441:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4671,20 +5060,20 @@ "typeString": "int_const 0" } ], - "id": 287, + "id": 311, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6650:7:0", + "src": "7433:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 289, + "id": 313, "isConstant": false, "isLValue": false, "isPure": true, @@ -4692,25 +5081,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6650:10:0", + "src": "7433:10:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "VariableDeclarationStatement", - "src": "6630:30:0" + "src": "7413:30:0" }, { - "assignments": [], + "assignments": [ + 316 + ], "declarations": [ { "constant": false, - "id": 292, + "id": 316, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6670:20:0", + "scope": 505, + "src": "7453:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4718,10 +5109,11 @@ "typeString": "address" }, "typeName": { - "id": 291, + "id": 315, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6670:7:0", + "src": "7453:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4731,21 +5123,23 @@ "visibility": "internal" } ], - "id": 293, + "id": 317, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "6670:20:0" + "src": "7453:20:0" }, { - "assignments": [], + "assignments": [ + 319 + ], "declarations": [ { "constant": false, - "id": 295, + "id": 319, "name": "v", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6700:7:0", + "scope": 505, + "src": "7483:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4753,10 +5147,10 @@ "typeString": "uint8" }, "typeName": { - "id": 294, + "id": 318, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6700:5:0", + "src": "7483:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4766,21 +5160,23 @@ "visibility": "internal" } ], - "id": 296, + "id": 320, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "6700:7:0" + "src": "7483:7:0" }, { - "assignments": [], + "assignments": [ + 322 + ], "declarations": [ { "constant": false, - "id": 298, + "id": 322, "name": "r", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6717:9:0", + "scope": 505, + "src": "7500:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4788,10 +5184,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 297, + "id": 321, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6717:7:0", + "src": "7500:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4801,21 +5197,23 @@ "visibility": "internal" } ], - "id": 299, + "id": 323, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "6717:9:0" + "src": "7500:9:0" }, { - "assignments": [], + "assignments": [ + 325 + ], "declarations": [ { "constant": false, - "id": 301, + "id": 325, "name": "s", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6736:9:0", + "scope": 505, + "src": "7519:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4823,10 +5221,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 300, + "id": 324, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6736:7:0", + "src": "7519:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4836,21 +5234,23 @@ "visibility": "internal" } ], - "id": 302, + "id": 326, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "6736:9:0" + "src": "7519:9:0" }, { - "assignments": [], + "assignments": [ + 328 + ], "declarations": [ { "constant": false, - "id": 304, + "id": 328, "name": "i", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6755:9:0", + "scope": 505, + "src": "7538:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4858,10 +5258,10 @@ "typeString": "uint256" }, "typeName": { - "id": 303, + "id": 327, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6755:7:0", + "src": "7538:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4871,21 +5271,21 @@ "visibility": "internal" } ], - "id": 305, + "id": 329, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "6755:9:0" + "src": "7538:9:0" }, { "body": { - "id": 423, + "id": 503, "nodeType": "Block", - "src": "6806:1908:0", + "src": "7589:3221:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 324, + "id": 348, "isConstant": false, "isLValue": false, "isPure": false, @@ -4895,12 +5295,12 @@ "components": [ { "argumentTypes": null, - "id": 316, + "id": 340, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "6821:1:0", + "referencedDeclaration": 319, + "src": "7604:1:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4908,12 +5308,12 @@ }, { "argumentTypes": null, - "id": 317, + "id": 341, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "6824:1:0", + "referencedDeclaration": 322, + "src": "7607:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4921,26 +5321,26 @@ }, { "argumentTypes": null, - "id": 318, + "id": 342, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "6827:1:0", + "referencedDeclaration": 325, + "src": "7610:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 319, + "id": 343, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", - "src": "6820:9:0", + "src": "7603:9:0", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" @@ -4953,12 +5353,12 @@ "arguments": [ { "argumentTypes": null, - "id": 321, + "id": 345, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "6847:10:0", + "referencedDeclaration": 293, + "src": "7630:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4966,12 +5366,12 @@ }, { "argumentTypes": null, - "id": 322, + "id": 346, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6859:1:0", + "referencedDeclaration": 328, + "src": "7642:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4989,18 +5389,18 @@ "typeString": "uint256" } ], - "id": 320, + "id": 344, "name": "signatureSplit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "6832:14:0", + "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": 323, + "id": 347, "isConstant": false, "isLValue": false, "isPure": false, @@ -5008,21 +5408,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6832:29:0", + "src": "7615:29:0", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" } }, - "src": "6820:41:0", + "src": "7603:41:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 325, + "id": 349, "nodeType": "ExpressionStatement", - "src": "6820:41:0" + "src": "7603:41:0" }, { "condition": { @@ -5031,19 +5431,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 328, + "id": 352, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 326, + "id": 350, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "6936:1:0", + "referencedDeclaration": 319, + "src": "7719:1:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5054,14 +5454,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 327, + "id": 351, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6941:1:0", + "src": "7724:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5069,7 +5469,7 @@ }, "value": "0" }, - "src": "6936:6:0", + "src": "7719:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5082,19 +5482,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 354, + "id": 426, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 352, + "id": 424, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "7691:1:0", + "referencedDeclaration": 319, + "src": "9768:1:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5105,14 +5505,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 353, + "id": 425, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7696:1:0", + "src": "9773:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5120,33 +5520,33 @@ }, "value": "1" }, - "src": "7691:6:0", + "src": "9768:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 403, + "id": 477, "nodeType": "Block", - "src": "8399:149:0", + "src": "10466:149:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 401, + "id": 475, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 394, + "id": 468, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8490:12:0", + "referencedDeclaration": 316, + "src": "10557:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5159,12 +5559,12 @@ "arguments": [ { "argumentTypes": null, - "id": 396, + "id": 470, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "8515:8:0", + "referencedDeclaration": 289, + "src": "10582:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5172,12 +5572,12 @@ }, { "argumentTypes": null, - "id": 397, + "id": 471, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "8525:1:0", + "referencedDeclaration": 319, + "src": "10592:1:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5185,12 +5585,12 @@ }, { "argumentTypes": null, - "id": 398, + "id": 472, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "8528:1:0", + "referencedDeclaration": 322, + "src": "10595:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5198,12 +5598,12 @@ }, { "argumentTypes": null, - "id": 399, + "id": 473, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "8531:1:0", + "referencedDeclaration": 325, + "src": "10598:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5229,18 +5629,18 @@ "typeString": "bytes32" } ], - "id": 395, + "id": 469, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4007, - "src": "8505:9:0", + "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": 400, + "id": 474, "isConstant": false, "isLValue": false, "isPure": false, @@ -5248,48 +5648,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8505:28:0", + "src": "10572:28:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "8490:43:0", + "src": "10557:43:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 402, + "id": 476, "nodeType": "ExpressionStatement", - "src": "8490:43:0" + "src": "10557:43:0" } ] }, - "id": 404, + "id": 478, "nodeType": "IfStatement", - "src": "7687:861:0", + "src": "9764:851:0", "trueBody": { - "id": 393, + "id": 467, "nodeType": "Block", - "src": "7699:694:0", + "src": "9776:684:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 359, + "id": 433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 355, + "id": 427, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "7812:12:0", + "referencedDeclaration": 316, + "src": "9889:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5302,39 +5702,77 @@ "arguments": [ { "argumentTypes": null, - "id": 357, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "7835:1:0", + "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_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 356, + "id": 428, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7827:7:0", + "src": "9904:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 358, + "id": 432, "isConstant": false, "isLValue": false, "isPure": false, @@ -5342,380 +5780,137 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7827:10:0", + "src": "9904:19:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "src": "7812:25:0", + "src": "9889:34:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 360, + "id": 434, "nodeType": "ExpressionStatement", - "src": "7812:25:0" + "src": "9889:34:0" }, { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "arguments": [ + { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 361, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "8004:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "id": 362, + "id": 447, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8004:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 363, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8018:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8004:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { + "leftExpression": { "argumentTypes": null, - "baseExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 365, - "name": "approvedHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "8034:14:0", + "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_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "id": 367, - "indexExpression": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "id": 366, + "id": 438, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8049:12:0", + "referencedDeclaration": 316, + "src": "10108:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8034:28:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 369, - "indexExpression": { - "argumentTypes": null, - "id": 368, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "8063:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8034:38:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8076:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8034:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8004:73:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 376, - "nodeType": "IfStatement", - "src": "8000:132:0", - "trueBody": { - "id": 375, - "nodeType": "Block", - "src": "8079:53:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8108:5:0", - "subdenomination": null, + "src": "10094:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 274, - "id": 374, - "nodeType": "Return", - "src": "8101:12:0" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 377, - "name": "consumeHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "8253:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 378, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "8268:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" } }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8268:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 380, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8282:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8268:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8253:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 392, - "nodeType": "IfStatement", - "src": "8249:130:0", - "trueBody": { - "id": 391, - "nodeType": "Block", - "src": "8296:83:0", - "statements": [ - { - "expression": { + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { "argumentTypes": null, - "id": 389, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 446, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 383, + "id": 440, "name": "approvedHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "8318:14:0", + "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": 386, + "id": 442, "indexExpression": { "argumentTypes": null, - "id": 384, + "id": 441, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8333:12:0", + "referencedDeclaration": 316, + "src": "10139:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5726,21 +5921,293 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8318:28:0", + "src": "10124:28:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 387, + "id": 444, "indexExpression": { "argumentTypes": null, - "id": 385, + "id": 443, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "8347:8:0", + "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" @@ -5751,7 +6218,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8318:38:0", + "src": "10385:38:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5762,14 +6229,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 388, + "id": 462, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8359:1:0", + "src": "10426:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5777,15 +6244,15 @@ }, "value": "0" }, - "src": "8318:42:0", + "src": "10385:42:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 390, + "id": 464, "nodeType": "ExpressionStatement", - "src": "8318:42:0" + "src": "10385:42:0" } ] } @@ -5793,30 +6260,30 @@ ] } }, - "id": 405, + "id": 479, "nodeType": "IfStatement", - "src": "6932:1616:0", + "src": "7715:2900:0", "trueBody": { - "id": 351, + "id": 423, "nodeType": "Block", - "src": "6944:737:0", + "src": "7727:2031:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 333, + "id": 359, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 329, + "id": 353, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "7061:12:0", + "referencedDeclaration": 316, + "src": "7844:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5829,39 +6296,77 @@ "arguments": [ { "argumentTypes": null, - "id": 331, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "7084:1:0", + "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_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 330, + "id": 354, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7076:7:0", + "src": "7859:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 332, + "id": 358, "isConstant": false, "isLValue": false, "isPure": false, @@ -5869,32 +6374,808 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7076:10:0", + "src": "7859:19:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "src": "7061:25:0", + "src": "7844:34:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 334, + "id": 360, "nodeType": "ExpressionStatement", - "src": "7061:25:0" + "src": "7844:34:0" }, { - "assignments": [], + "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": 336, + "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": 428, - "src": "7104:30:0", + "scope": 423, + "src": "9169:30:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5902,10 +7183,10 @@ "typeString": "bytes" }, "typeName": { - "id": 335, + "id": 406, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7104:5:0", + "src": "9169:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5915,394 +7196,261 @@ "visibility": "internal" } ], - "id": 337, + "id": 408, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "7104:30:0" + "src": "9169:30:0" }, { "externalReferences": [ { "contractSignature": { - "declaration": 336, + "declaration": 407, "isOffset": false, "isSlot": false, - "src": "7394:17:0", + "src": "9459:17:0", "valueSize": 1 } }, { "signatures": { - "declaration": 268, + "declaration": 293, "isOffset": false, "isSlot": false, - "src": "7423:10:0", + "src": "9488:10:0", "valueSize": 1 } }, { "s": { - "declaration": 301, + "declaration": 325, "isOffset": false, "isSlot": false, - "src": "7435:1:0", + "src": "9500:1:0", "valueSize": 1 } } ], - "id": 338, + "id": 409, "nodeType": "InlineAssembly", "operations": "{\n contractSignature := add(add(signatures, s), 0x20)\n}", - "src": "7224:257:0" + "src": "9289:262:0" }, { - "condition": { + "expression": { "argumentTypes": null, - "id": 346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7483:76:0", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 343, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "7535:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" }, - { - "argumentTypes": null, - "id": 344, - "name": "contractSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "7541: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": { + "id": 419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 340, - "name": "currentOwner", + "id": 415, + "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "7504:12:0", + "referencedDeclaration": 291, + "src": "9603:4:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "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_address", - "typeString": "address" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } ], - "id": 339, - "name": "ISignatureValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "7484:19:0", + "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_type$_t_contract$_ISignatureValidator_$1803_$", - "typeString": "type(contract ISignatureValidator)" + "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": 341, + "id": 417, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7484:33:0", + "src": "9552:75:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISignatureValidator_$1803", - "typeString": "contract ISignatureValidator" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } }, - "id": 342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isValidSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "7484:50:0", + "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_function_external_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes memory,bytes memory) external returns (bool)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7484:75:0", + { + "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_bool", - "typeString": "bool" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 350, - "nodeType": "IfStatement", - "src": "7479:135:0", - "trueBody": { - "id": 349, - "nodeType": "Block", - "src": "7561:53:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7590:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 274, - "id": 348, - "nodeType": "Return", - "src": "7583:12:0" - } - ] - } - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 406, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8565:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 407, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "8581:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8565:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 409, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "8594:6:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 411, - "indexExpression": { - "argumentTypes": null, - "id": 410, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8601:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8594:20:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8618:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8594:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8565:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 418, - "nodeType": "IfStatement", - "src": "8561:105:0", - "trueBody": { - "id": 417, - "nodeType": "Block", - "src": "8621:45:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 415, + "id": 421, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "bool", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "8646:5:0", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "9544:146:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "functionReturnParameters": 274, - "id": 416, - "nodeType": "Return", - "src": "8639:12:0" + "id": 422, + "nodeType": "ExpressionStatement", + "src": "9544:146:0" } ] } @@ -6310,19 +7458,328 @@ { "expression": { "argumentTypes": null, - "id": 421, + "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": 419, + "id": 499, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "8679:9:0", + "referencedDeclaration": 310, + "src": "10775:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6332,26 +7789,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 420, + "id": 500, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8691:12:0", + "referencedDeclaration": 316, + "src": "10787:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "8679:24:0", + "src": "10775:24:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 422, + "id": 502, "nodeType": "ExpressionStatement", - "src": "8679:24:0" + "src": "10775:24:0" } ] }, @@ -6361,19 +7818,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 312, + "id": 336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 310, + "id": 334, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6786:1:0", + "referencedDeclaration": 328, + "src": "7569:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6383,40 +7840,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 311, + "id": 335, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "6790:9:0", + "referencedDeclaration": 1360, + "src": "7573:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6786:13:0", + "src": "7569:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 424, + "id": 504, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 308, + "id": 332, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 306, + "id": 330, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6779:1:0", + "referencedDeclaration": 328, + "src": "7562:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6427,14 +7884,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 307, + "id": 331, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6783:1:0", + "src": "7566:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6442,20 +7899,20 @@ }, "value": "0" }, - "src": "6779:5:0", + "src": "7562:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 309, + "id": 333, "nodeType": "ExpressionStatement", - "src": "6779:5:0" + "src": "7562:5:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 314, + "id": 338, "isConstant": false, "isLValue": false, "isPure": false, @@ -6463,15 +7920,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6801:3:0", + "src": "7584:3:0", "subExpression": { "argumentTypes": null, - "id": 313, + "id": 337, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6801:1:0", + "referencedDeclaration": 328, + "src": "7584:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6482,58 +7939,33 @@ "typeString": "uint256" } }, - "id": 315, + "id": 339, "nodeType": "ExpressionStatement", - "src": "6801:3:0" + "src": "7584:3:0" }, "nodeType": "ForStatement", - "src": "6774:1940:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8730:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 274, - "id": 426, - "nodeType": "Return", - "src": "8723:11:0" + "src": "7557:3253:0" } ] }, - "documentation": "@dev Should return whether the signature provided is valid for the provided data, hash\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@return a bool upon valid or invalid signature with corresponding _data", - "id": 428, + "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, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "checkSignatures", "nodeType": "FunctionDefinition", "parameters": { - "id": 271, + "id": 296, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 264, + "id": 289, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6305:16:0", + "scope": 506, + "src": "7097:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6541,10 +7973,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 263, + "id": 288, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6305:7:0", + "src": "7097:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6555,22 +7987,22 @@ }, { "constant": false, - "id": 266, + "id": 291, "name": "data", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6323:10:0", + "scope": 506, + "src": "7115:17:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 265, + "id": 290, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6323:5:0", + "src": "7115:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6581,22 +8013,22 @@ }, { "constant": false, - "id": 268, + "id": 293, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6335:16:0", + "scope": 506, + "src": "7134:23:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 267, + "id": 292, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6335:5:0", + "src": "7134:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6607,11 +8039,11 @@ }, { "constant": false, - "id": 270, + "id": 295, "name": "consumeHash", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6353:16:0", + "scope": 506, + "src": "7159:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6619,10 +8051,10 @@ "typeString": "bool" }, "typeName": { - "id": 269, + "id": 294, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6353:4:0", + "src": "7159:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6632,66 +8064,38 @@ "visibility": "internal" } ], - "src": "6304:66:0" + "src": "7096:80:0" }, - "payable": false, "returnParameters": { - "id": 274, + "id": 297, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 273, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6405:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 272, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6405:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6404:6:0" + "parameters": [], + "src": "7198:0:0" }, - "scope": 692, - "src": "6280:2461:0", + "scope": 773, + "src": "7072:3744:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 475, + "id": 553, "nodeType": "Block", - "src": "9804:420:0", + "src": "11890:420:0", "statements": [ { "assignments": [ - 444 + 522 ], "declarations": [ { "constant": false, - "id": 444, + "id": 522, "name": "startGas", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9814:16:0", + "scope": 553, + "src": "11900:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6699,10 +8103,10 @@ "typeString": "uint256" }, "typeName": { - "id": 443, + "id": 521, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9814:7:0", + "src": "11900:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6712,24 +8116,24 @@ "visibility": "internal" } ], - "id": 447, + "id": 525, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 445, + "id": 523, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "9833:7:0", + "referencedDeclaration": 4359, + "src": "11919:7:0", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 446, + "id": 524, "isConstant": false, "isLValue": false, "isPure": false, @@ -6737,14 +8141,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9833:9:0", + "src": "11919:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "9814:28:0" + "src": "11900:28:0" }, { "expression": { @@ -6755,12 +8159,12 @@ "arguments": [ { "argumentTypes": null, - "id": 450, + "id": 528, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "10004:2:0", + "referencedDeclaration": 508, + "src": "12090:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6768,12 +8172,12 @@ }, { "argumentTypes": null, - "id": 451, + "id": 529, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "10008:5:0", + "referencedDeclaration": 510, + "src": "12094:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6781,27 +8185,27 @@ }, { "argumentTypes": null, - "id": 452, + "id": 530, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "10015:4:0", + "referencedDeclaration": 512, + "src": "12101:4:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } }, { "argumentTypes": null, - "id": 453, + "id": 531, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 436, - "src": "10021:9:0", + "referencedDeclaration": 514, + "src": "12107:9:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -6810,18 +8214,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 454, + "id": 532, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "10032:7:0", + "referencedDeclaration": 4359, + "src": "12118:7:0", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 455, + "id": 533, "isConstant": false, "isLValue": false, "isPure": false, @@ -6829,7 +8233,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10032:9:0", + "src": "12118:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6847,11 +8251,11 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -6859,18 +8263,18 @@ "typeString": "uint256" } ], - "id": 449, + "id": 527, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "9996:7:0", + "referencedDeclaration": 937, + "src": "12082:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", + "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": 456, + "id": 534, "isConstant": false, "isLValue": false, "isPure": false, @@ -6878,7 +8282,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9996:46:0", + "src": "12082:46:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6892,21 +8296,21 @@ "typeString": "bool" } ], - "id": 448, + "id": 526, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4018, - "src": "9988:7:0", + "referencedDeclaration": 4369, + "src": "12074:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 457, + "id": 535, "isConstant": false, "isLValue": false, "isPure": false, @@ -6914,28 +8318,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9988:55:0", + "src": "12074:55:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 458, + "id": 536, "nodeType": "ExpressionStatement", - "src": "9988:55:0" + "src": "12074:55:0" }, { "assignments": [ - 460 + 538 ], "declarations": [ { "constant": false, - "id": 460, + "id": 538, "name": "requiredGas", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "10053:19:0", + "scope": 553, + "src": "12139:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6943,10 +8347,10 @@ "typeString": "uint256" }, "typeName": { - "id": 459, + "id": 537, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10053:7:0", + "src": "12139:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6956,26 +8360,26 @@ "visibility": "internal" } ], - "id": 465, + "id": 543, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 464, + "id": 542, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 461, + "id": 539, "name": "startGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 444, - "src": "10075:8:0", + "referencedDeclaration": 522, + "src": "12161:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6988,18 +8392,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 462, + "id": 540, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "10086:7:0", + "referencedDeclaration": 4359, + "src": "12172:7:0", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 463, + "id": 541, "isConstant": false, "isLValue": false, "isPure": false, @@ -7007,20 +8411,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10086:9:0", + "src": "12172:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10075:20:0", + "src": "12161:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "10053:42:0" + "src": "12139:42:0" }, { "expression": { @@ -7034,12 +8438,12 @@ "arguments": [ { "argumentTypes": null, - "id": 470, + "id": 548, "name": "requiredGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 460, - "src": "10203:11:0", + "referencedDeclaration": 538, + "src": "12289:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7055,18 +8459,18 @@ ], "expression": { "argumentTypes": null, - "id": 468, + "id": 546, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "10186:3:0", + "referencedDeclaration": 4353, + "src": "12272:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 469, + "id": 547, "isConstant": false, "isLValue": false, "isPure": true, @@ -7074,13 +8478,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10186:16:0", + "src": "12272:16:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 471, + "id": 549, "isConstant": false, "isLValue": false, "isPure": false, @@ -7088,7 +8492,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10186:29:0", + "src": "12272:29:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7102,20 +8506,20 @@ "typeString": "bytes memory" } ], - "id": 467, + "id": 545, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10179:6:0", + "src": "12265:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)" }, "typeName": "string" }, - "id": 472, + "id": 550, "isConstant": false, "isLValue": false, "isPure": false, @@ -7123,9 +8527,9 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10179:37:0", + "src": "12265:37:0", "typeDescriptions": { - "typeIdentifier": "t_string_memory", + "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } @@ -7133,25 +8537,25 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_string_memory", + "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], - "id": 466, + "id": 544, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4021, - "src": "10172:6:0", + "referencedDeclaration": 4372, + "src": "12258:6:0", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 473, + "id": 551, "isConstant": false, "isLValue": false, "isPure": false, @@ -7159,57 +8563,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10172:45:0", + "src": "12258:45:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 474, + "id": 552, "nodeType": "ExpressionStatement", - "src": "10172:45:0" + "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": 476, + "id": 554, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 439, + "id": 517, "modifierName": { "argumentTypes": null, - "id": 438, + "id": 516, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "9763:10:0", + "referencedDeclaration": 1880, + "src": "11849:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "9763:10:0" + "src": "11849:10:0" } ], "name": "requiredTxGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 437, + "id": 515, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 430, + "id": 508, "name": "to", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9675:10:0", + "scope": 554, + "src": "11750:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7217,10 +8620,11 @@ "typeString": "address" }, "typeName": { - "id": 429, + "id": 507, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9675:7:0", + "src": "11750:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7231,11 +8635,11 @@ }, { "constant": false, - "id": 432, + "id": 510, "name": "value", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9687:13:0", + "scope": 554, + "src": "11762:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7243,10 +8647,10 @@ "typeString": "uint256" }, "typeName": { - "id": 431, + "id": 509, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9687:7:0", + "src": "11762:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7257,22 +8661,22 @@ }, { "constant": false, - "id": 434, + "id": 512, "name": "data", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9702:10:0", + "scope": 554, + "src": "11777:19:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 433, + "id": 511, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9702:5:0", + "src": "11777:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7283,26 +8687,26 @@ }, { "constant": false, - "id": 436, + "id": 514, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9714:24:0", + "scope": 554, + "src": "11798:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 435, + "id": 513, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "9714:14:0", + "referencedDeclaration": 1802, + "src": "11798:14:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -7310,20 +8714,19 @@ "visibility": "internal" } ], - "src": "9674:65:0" + "src": "11749:74:0" }, - "payable": false, "returnParameters": { - "id": 442, + "id": 520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 441, + "id": 519, "name": "", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9791:7:0", + "scope": 554, + "src": "11877:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7331,10 +8734,10 @@ "typeString": "uint256" }, "typeName": { - "id": 440, + "id": 518, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9791:7:0", + "src": "11877:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7344,19 +8747,19 @@ "visibility": "internal" } ], - "src": "9790:9:0" + "src": "11876:9:0" }, - "scope": 692, - "src": "9652:572:0", + "scope": 773, + "src": "11727:583:0", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 500, + "id": 580, "nodeType": "Block", - "src": "10531:138:0", + "src": "12619:147:0", "statements": [ { "expression": { @@ -7368,7 +8771,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 487, + "id": 567, "isConstant": false, "isLValue": false, "isPure": false, @@ -7377,34 +8780,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 482, + "id": 560, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "10549:6:0", + "referencedDeclaration": 1356, + "src": "12637:6:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 485, + "id": 563, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 483, + "id": 561, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "10556:3:0", + "referencedDeclaration": 4366, + "src": "12644:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 484, + "id": 562, "isConstant": false, "isLValue": false, "isPure": false, @@ -7412,10 +8815,10 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10556:10:0", + "src": "12644:10:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "isConstant": false, @@ -7423,7 +8826,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10549:18:0", + "src": "12637:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7433,23 +8836,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 486, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "10571:1:0", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "12659:10:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "10549:23:0", + "src": "12637:32:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7458,14 +8899,14 @@ { "argumentTypes": null, "hexValue": "4f6e6c79206f776e6572732063616e20617070726f766520612068617368", - "id": 488, + "id": 568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10574:32:0", + "src": "12671:32:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_60f21058f4a7689ef29853b3c9c17c9bf69856a949794649bb68878f00552475", @@ -7485,21 +8926,21 @@ "typeString": "literal_string \"Only owners can approve a hash\"" } ], - "id": 481, + "id": 559, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "10541:7:0", + "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": 489, + "id": 569, "isConstant": false, "isLValue": false, "isPure": false, @@ -7507,20 +8948,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10541:66:0", + "src": "12629:75:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 490, + "id": 570, "nodeType": "ExpressionStatement", - "src": "10541:66:0" + "src": "12629:75:0" }, { "expression": { "argumentTypes": null, - "id": 498, + "id": 578, "isConstant": false, "isLValue": false, "isPure": false, @@ -7531,34 +8972,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 491, + "id": 571, "name": "approvedHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "10617:14:0", + "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": 495, + "id": 575, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 492, + "id": 572, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "10632:3:0", + "referencedDeclaration": 4366, + "src": "12729:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 493, + "id": 573, "isConstant": false, "isLValue": false, "isPure": false, @@ -7566,10 +9007,10 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10632:10:0", + "src": "12729:10:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "isConstant": false, @@ -7577,21 +9018,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10617:26:0", + "src": "12714:26:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 496, + "id": 576, "indexExpression": { "argumentTypes": null, - "id": 494, + "id": 574, "name": "hashToApprove", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "10644:13:0", + "referencedDeclaration": 556, + "src": "12741:13:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7602,7 +9043,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "10617:41:0", + "src": "12714:41:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7613,14 +9054,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 497, + "id": 577, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10661:1:0", + "src": "12758:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -7628,37 +9069,36 @@ }, "value": "1" }, - "src": "10617:45:0", + "src": "12714:45:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 499, + "id": 579, "nodeType": "ExpressionStatement", - "src": "10617:45:0" + "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": 501, + "id": 581, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "approveHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 479, + "id": 557, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 478, + "id": 556, "name": "hashToApprove", "nodeType": "VariableDeclaration", - "scope": 501, - "src": "10489:21:0", + "scope": 581, + "src": "12575:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7666,10 +9106,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 477, + "id": 555, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10489:7:0", + "src": "12575:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7679,31 +9119,30 @@ "visibility": "internal" } ], - "src": "10488:23:0" + "src": "12574:23:0" }, - "payable": false, "returnParameters": { - "id": 480, + "id": 558, "nodeType": "ParameterList", "parameters": [], - "src": "10531:0:0" + "src": "12619:0:0" }, - "scope": 692, - "src": "10468:201:0", + "scope": 773, + "src": "12554:212:0", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 516, + "id": 596, "nodeType": "Block", - "src": "10903:58:0", + "src": "13013:58:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 514, + "id": 594, "isConstant": false, "isLValue": false, "isPure": false, @@ -7712,54 +9151,54 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 508, + "id": 588, "name": "signedMessages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "10913:14:0", + "referencedDeclaration": 47, + "src": "13023:14:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 512, + "id": 592, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 510, + "id": 590, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "10943:5:0", + "referencedDeclaration": 583, + "src": "13053:5:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } ], - "id": 509, + "id": 589, "name": "getMessageHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "10928:14:0", + "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": 511, + "id": 591, "isConstant": false, "isLValue": false, "isPure": false, @@ -7767,7 +9206,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10928:21:0", + "src": "13038:21:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7778,7 +9217,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "10913:37:0", + "src": "13023:37:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7789,14 +9228,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 513, + "id": 593, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10953:1:0", + "src": "13063:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -7804,68 +9243,67 @@ }, "value": "1" }, - "src": "10913:41:0", + "src": "13023:41:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 515, + "id": 595, "nodeType": "ExpressionStatement", - "src": "10913:41:0" + "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": 517, + "id": 597, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 506, + "id": 586, "modifierName": { "argumentTypes": null, - "id": 505, + "id": 585, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "10888:10:0", + "referencedDeclaration": 1880, + "src": "12998:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "10888:10:0" + "src": "12998:10:0" } ], "name": "signMessage", "nodeType": "FunctionDefinition", "parameters": { - "id": 504, + "id": 584, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 503, + "id": 583, "name": "_data", "nodeType": "VariableDeclaration", - "scope": 517, - "src": "10852:11:0", + "scope": 597, + "src": "12950:20:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 502, + "id": 582, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10852:5:0", + "src": "12950:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7875,39 +9313,38 @@ "visibility": "internal" } ], - "src": "10851:13:0" + "src": "12949:22:0" }, - "payable": false, "returnParameters": { - "id": 507, + "id": 587, "nodeType": "ParameterList", "parameters": [], - "src": "10903:0:0" + "src": "13013:0:0" }, - "scope": 692, - "src": "10831:130:0", + "scope": 773, + "src": "12929:142:0", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 556, + "id": 637, "nodeType": "Block", - "src": "11400:340:0", + "src": "13525:386:0", "statements": [ { "assignments": [ - 527 + 607 ], "declarations": [ { "constant": false, - "id": 527, + "id": 607, "name": "messageHash", "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11410:19:0", + "scope": 637, + "src": "13535:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7915,10 +9352,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 526, + "id": 606, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "11410:7:0", + "src": "13535:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7928,43 +9365,43 @@ "visibility": "internal" } ], - "id": 531, + "id": 611, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 529, + "id": 609, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11447:5:0", + "referencedDeclaration": 599, + "src": "13572:5:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } ], - "id": 528, + "id": 608, "name": "getMessageHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "11432:14:0", + "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": 530, + "id": 610, "isConstant": false, "isLValue": false, "isPure": false, @@ -7972,14 +9409,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11432:21:0", + "src": "13557:21:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "11410:43:0" + "src": "13535:43:0" }, { "condition": { @@ -7988,7 +9425,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 535, + "id": 615, "isConstant": false, "isLValue": false, "isPure": false, @@ -7997,18 +9434,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 532, + "id": 612, "name": "_signature", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 521, - "src": "11467:10:0", + "referencedDeclaration": 601, + "src": "13592:10:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } }, - "id": 533, + "id": 613, "isConstant": false, "isLValue": false, "isPure": false, @@ -8016,7 +9453,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11467:17:0", + "src": "13592:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8027,14 +9464,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 534, + "id": 614, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11488:1:0", + "src": "13613:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8042,310 +9479,333 @@ }, "value": "0" }, - "src": "11467:22:0", + "src": "13592:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 554, + "id": 633, "nodeType": "Block", - "src": "11564:170:0", + "src": "13709:160:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 545, - "name": "isValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "11659:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 547, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 527, - "src": "11685:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 548, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11698:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 549, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 521, - "src": "11705:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11717:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 546, - "name": "checkSignatures", + "arguments": [ + { + "argumentTypes": null, + "id": 627, + "name": "messageHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "11669:15:0", + "referencedDeclaration": 607, + "src": "13820:11:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory,bytes memory,bool) returns (bool)" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11669:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11659:64:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 553, - "nodeType": "ExpressionStatement", - "src": "11659:64:0" - } - ] - }, - "id": 555, - "nodeType": "IfStatement", - "src": "11463:271:0", - "trueBody": { - "id": 544, - "nodeType": "Block", - "src": "11491:67:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 536, - "name": "isValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "11505:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 537, - "name": "signedMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "11515:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 539, - "indexExpression": { - "argumentTypes": null, - "id": 538, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 527, - "src": "11530:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11515:27:0", + "id": 628, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "13833:5:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + { "argumentTypes": null, - "hexValue": "30", - "id": 540, + "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": "number", + "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "11546:1:0", + "src": "13852:5:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "value": "0" - }, - "src": "11515:32:0", + "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_bool", - "typeString": "bool" + "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)" } }, - "src": "11505:42:0", + "id": 631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13804:54:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 543, + "id": 632, "nodeType": "ExpressionStatement", - "src": "11505:42:0" + "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": 557, + "id": 638, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "isValidSignature", "nodeType": "FunctionDefinition", "parameters": { - "id": 522, + "id": 602, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 519, + "id": 599, "name": "_data", "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11319:11:0", + "scope": 638, + "src": "13430:20:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 518, + "id": 598, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11319:5:0", + "src": "13430:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8356,22 +9816,22 @@ }, { "constant": false, - "id": 521, + "id": 601, "name": "_signature", "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11332:16:0", + "scope": 638, + "src": "13452:25:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 520, + "id": 600, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11332:5:0", + "src": "13452:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8381,66 +9841,65 @@ "visibility": "internal" } ], - "src": "11318:31:0" + "src": "13429:49:0" }, - "payable": false, "returnParameters": { - "id": 525, + "id": 605, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 524, - "name": "isValid", + "id": 604, + "name": "", "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11382:12:0", + "scope": 638, + "src": "13513:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" }, "typeName": { - "id": 523, - "name": "bool", + "id": 603, + "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "11382:4:0", + "src": "13513:6:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], - "src": "11381:14:0" + "src": "13512:8:0" }, - "scope": 692, - "src": "11293:447:0", + "scope": 773, + "src": "13404:507:0", "stateMutability": "nonpayable", - "superFunction": 1802, - "visibility": "public" + "superFunction": 2079, + "visibility": "external" }, { "body": { - "id": 590, + "id": 671, "nodeType": "Block", - "src": "12009:246:0", + "src": "14187:249:0", "statements": [ { "assignments": [ - 565 + 646 ], "declarations": [ { "constant": false, - "id": 565, + "id": 646, "name": "safeMessageHash", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "12019:23:0", + "scope": 671, + "src": "14197:23:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8448,10 +9907,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 564, + "id": 645, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12019:7:0", + "src": "14197:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8461,7 +9920,7 @@ "visibility": "internal" } ], - "id": 575, + "id": 656, "initialValue": { "argumentTypes": null, "arguments": [ @@ -8470,12 +9929,12 @@ "arguments": [ { "argumentTypes": null, - "id": 569, + "id": 650, "name": "SAFE_MSG_TYPEHASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "12079:17:0", + "referencedDeclaration": 35, + "src": "14257:17:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8486,12 +9945,12 @@ "arguments": [ { "argumentTypes": null, - "id": 571, + "id": 652, "name": "message", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 559, - "src": "12108:7:0", + "referencedDeclaration": 640, + "src": "14286:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -8505,18 +9964,18 @@ "typeString": "bytes memory" } ], - "id": 570, + "id": 651, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12098:9:0", + "referencedDeclaration": 4360, + "src": "14276:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 572, + "id": 653, "isConstant": false, "isLValue": false, "isPure": false, @@ -8524,7 +9983,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12098:18:0", + "src": "14276:18:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8544,18 +10003,18 @@ ], "expression": { "argumentTypes": null, - "id": 567, + "id": 648, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12068:3:0", + "referencedDeclaration": 4353, + "src": "14246:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 568, + "id": 649, "isConstant": false, "isLValue": false, "isPure": true, @@ -8563,13 +10022,13 @@ "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12068:10:0", + "src": "14246:10:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 573, + "id": 654, "isConstant": false, "isLValue": false, "isPure": false, @@ -8577,7 +10036,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12068:49:0", + "src": "14246:49:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -8591,18 +10050,18 @@ "typeString": "bytes memory" } ], - "id": 566, + "id": 647, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12045:9:0", + "referencedDeclaration": 4360, + "src": "14223:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 574, + "id": 655, "isConstant": false, "isLValue": false, "isPure": false, @@ -8610,14 +10069,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12045:82:0", + "src": "14223:82:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "12019:108:0" + "src": "14197:108:0" }, { "expression": { @@ -8632,14 +10091,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 580, + "id": 661, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12189:4:0", + "src": "14367:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -8655,20 +10114,20 @@ "typeString": "int_const 25" } ], - "id": 579, + "id": 660, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12184:4:0", + "src": "14362:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 581, + "id": 662, "isConstant": false, "isLValue": false, "isPure": true, @@ -8676,7 +10135,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12184:10:0", + "src": "14362:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -8687,21 +10146,21 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "31", - "id": 583, + "hexValue": "30783031", + "id": 664, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12201:1:0", + "src": "14379:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, - "value": "1" + "value": "0x01" } ], "expression": { @@ -8711,20 +10170,20 @@ "typeString": "int_const 1" } ], - "id": 582, + "id": 663, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12196:4:0", + "src": "14374:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 584, + "id": 665, "isConstant": false, "isLValue": false, "isPure": true, @@ -8732,7 +10191,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12196:7:0", + "src": "14374:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -8740,12 +10199,12 @@ }, { "argumentTypes": null, - "id": 585, + "id": 666, "name": "domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "12205:15:0", + "referencedDeclaration": 43, + "src": "14386:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8753,12 +10212,12 @@ }, { "argumentTypes": null, - "id": 586, + "id": 667, "name": "safeMessageHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 565, - "src": "12222:15:0", + "referencedDeclaration": 646, + "src": "14403:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8786,18 +10245,18 @@ ], "expression": { "argumentTypes": null, - "id": 577, + "id": 658, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12167:3:0", + "referencedDeclaration": 4353, + "src": "14345:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 578, + "id": 659, "isConstant": false, "isLValue": false, "isPure": true, @@ -8805,13 +10264,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12167:16:0", + "src": "14345:16:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 587, + "id": 668, "isConstant": false, "isLValue": false, "isPure": false, @@ -8819,7 +10278,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12167:71:0", + "src": "14345:74:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -8833,18 +10292,18 @@ "typeString": "bytes memory" } ], - "id": 576, + "id": 657, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12144:9:0", + "referencedDeclaration": 4360, + "src": "14322:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 588, + "id": 669, "isConstant": false, "isLValue": false, "isPure": false, @@ -8852,49 +10311,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12144:104:0", + "src": "14322:107:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 563, - "id": 589, + "functionReturnParameters": 644, + "id": 670, "nodeType": "Return", - "src": "12137:111:0" + "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": 591, + "id": 672, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "getMessageHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 560, + "id": 641, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 559, + "id": 640, "name": "message", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "11931:13:0", + "scope": 672, + "src": "14102:20:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 558, + "id": 639, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11931:5:0", + "src": "14102:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8904,20 +10362,19 @@ "visibility": "internal" } ], - "src": "11921:29:0" + "src": "14092:36:0" }, - "payable": false, "returnParameters": { - "id": 563, + "id": 644, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 562, + "id": 643, "name": "", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "11996:7:0", + "scope": 672, + "src": "14174:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8925,10 +10382,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 561, + "id": 642, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "11996:7:0", + "src": "14174:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8938,32 +10395,32 @@ "visibility": "internal" } ], - "src": "11995:9:0" + "src": "14173:9:0" }, - "scope": 692, - "src": "11898:357:0", + "scope": 773, + "src": "14069:367:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 649, + "id": 730, "nodeType": "Block", - "src": "13318:285:0", + "src": "15519:288:0", "statements": [ { "assignments": [ - 617 + 698 ], "declarations": [ { "constant": false, - "id": 617, + "id": 698, "name": "safeTxHash", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13328:18:0", + "scope": 730, + "src": "15529:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8971,10 +10428,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 616, + "id": 697, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13328:7:0", + "src": "15529:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8984,7 +10441,7 @@ "visibility": "internal" } ], - "id": 636, + "id": 717, "initialValue": { "argumentTypes": null, "arguments": [ @@ -8993,12 +10450,12 @@ "arguments": [ { "argumentTypes": null, - "id": 621, + "id": 702, "name": "SAFE_TX_TYPEHASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "13383:16:0", + "referencedDeclaration": 32, + "src": "15584:16:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9006,12 +10463,12 @@ }, { "argumentTypes": null, - "id": 622, + "id": 703, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "13401:2:0", + "referencedDeclaration": 674, + "src": "15602:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9019,12 +10476,12 @@ }, { "argumentTypes": null, - "id": 623, + "id": 704, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, - "src": "13405:5:0", + "referencedDeclaration": 676, + "src": "15606:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9035,12 +10492,12 @@ "arguments": [ { "argumentTypes": null, - "id": 625, + "id": 706, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "13422:4:0", + "referencedDeclaration": 678, + "src": "15623:4:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -9054,18 +10511,18 @@ "typeString": "bytes memory" } ], - "id": 624, + "id": 705, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "13412:9:0", + "referencedDeclaration": 4360, + "src": "15613:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 626, + "id": 707, "isConstant": false, "isLValue": false, "isPure": false, @@ -9073,7 +10530,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13412:15:0", + "src": "15613:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9081,25 +10538,25 @@ }, { "argumentTypes": null, - "id": 627, + "id": 708, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "13429:9:0", + "referencedDeclaration": 680, + "src": "15630:9:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 628, + "id": 709, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "13440:9:0", + "referencedDeclaration": 682, + "src": "15641:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9107,12 +10564,12 @@ }, { "argumentTypes": null, - "id": 629, - "name": "dataGas", + "id": 710, + "name": "baseGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 603, - "src": "13451:7:0", + "referencedDeclaration": 684, + "src": "15652:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9120,12 +10577,12 @@ }, { "argumentTypes": null, - "id": 630, + "id": 711, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "13460:8:0", + "referencedDeclaration": 686, + "src": "15661:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9133,12 +10590,12 @@ }, { "argumentTypes": null, - "id": 631, + "id": 712, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 607, - "src": "13470:8:0", + "referencedDeclaration": 688, + "src": "15671:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9146,12 +10603,12 @@ }, { "argumentTypes": null, - "id": 632, + "id": 713, "name": "refundReceiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "13480:14:0", + "referencedDeclaration": 690, + "src": "15681:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9159,12 +10616,12 @@ }, { "argumentTypes": null, - "id": 633, + "id": 714, "name": "_nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 611, - "src": "13496:6:0", + "referencedDeclaration": 692, + "src": "15697:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9190,7 +10647,7 @@ "typeString": "bytes32" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -9220,18 +10677,18 @@ ], "expression": { "argumentTypes": null, - "id": 619, + "id": 700, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "13372:3:0", + "referencedDeclaration": 4353, + "src": "15573:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 620, + "id": 701, "isConstant": false, "isLValue": false, "isPure": true, @@ -9239,13 +10696,13 @@ "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "13372:10:0", + "src": "15573:10:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 634, + "id": 715, "isConstant": false, "isLValue": false, "isPure": false, @@ -9253,7 +10710,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13372:131:0", + "src": "15573:131:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -9267,18 +10724,18 @@ "typeString": "bytes memory" } ], - "id": 618, + "id": 699, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "13349:9:0", + "referencedDeclaration": 4360, + "src": "15550:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 635, + "id": 716, "isConstant": false, "isLValue": false, "isPure": false, @@ -9286,14 +10743,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13349:164:0", + "src": "15550:164:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "13328:185:0" + "src": "15529:185:0" }, { "expression": { @@ -9305,14 +10762,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 640, + "id": 721, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13552:4:0", + "src": "15753:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -9328,20 +10785,20 @@ "typeString": "int_const 25" } ], - "id": 639, + "id": 720, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13547:4:0", + "src": "15748:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 641, + "id": 722, "isConstant": false, "isLValue": false, "isPure": true, @@ -9349,7 +10806,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13547:10:0", + "src": "15748:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -9360,21 +10817,21 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "31", - "id": 643, + "hexValue": "30783031", + "id": 724, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13564:1:0", + "src": "15765:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, - "value": "1" + "value": "0x01" } ], "expression": { @@ -9384,20 +10841,20 @@ "typeString": "int_const 1" } ], - "id": 642, + "id": 723, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13559:4:0", + "src": "15760:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 644, + "id": 725, "isConstant": false, "isLValue": false, "isPure": true, @@ -9405,7 +10862,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13559:7:0", + "src": "15760:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -9413,12 +10870,12 @@ }, { "argumentTypes": null, - "id": 645, + "id": 726, "name": "domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "13568:15:0", + "referencedDeclaration": 43, + "src": "15772:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9426,12 +10883,12 @@ }, { "argumentTypes": null, - "id": 646, + "id": 727, "name": "safeTxHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 617, - "src": "13585:10:0", + "referencedDeclaration": 698, + "src": "15789:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9459,18 +10916,18 @@ ], "expression": { "argumentTypes": null, - "id": 637, + "id": 718, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "13530:3:0", + "referencedDeclaration": 4353, + "src": "15731:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 638, + "id": 719, "isConstant": false, "isLValue": false, "isPure": true, @@ -9478,13 +10935,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "13530:16:0", + "src": "15731:16:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 647, + "id": 728, "isConstant": false, "isLValue": false, "isPure": false, @@ -9492,38 +10949,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13530:66:0", + "src": "15731:69:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 615, - "id": 648, + "functionReturnParameters": 696, + "id": 729, "nodeType": "Return", - "src": "13523:73:0" + "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 dataGas 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": 650, + "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, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "encodeTransactionData", "nodeType": "FunctionDefinition", "parameters": { - "id": 612, + "id": 693, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 593, + "id": 674, "name": "to", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13008:10:0", + "scope": 731, + "src": "15189:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9531,10 +10987,11 @@ "typeString": "address" }, "typeName": { - "id": 592, + "id": 673, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13008:7:0", + "src": "15189:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9545,11 +11002,11 @@ }, { "constant": false, - "id": 595, + "id": 676, "name": "value", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13028:13:0", + "scope": 731, + "src": "15210:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9557,10 +11014,10 @@ "typeString": "uint256" }, "typeName": { - "id": 594, + "id": 675, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13028:7:0", + "src": "15210:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9571,22 +11028,22 @@ }, { "constant": false, - "id": 597, + "id": 678, "name": "data", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13051:10:0", + "scope": 731, + "src": "15234:17:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 596, + "id": 677, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "13051:5:0", + "src": "15234:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9597,26 +11054,26 @@ }, { "constant": false, - "id": 599, + "id": 680, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13071:24:0", + "scope": 731, + "src": "15262:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 598, + "id": 679, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "13071:14:0", + "referencedDeclaration": 1802, + "src": "15262:14:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -9625,11 +11082,11 @@ }, { "constant": false, - "id": 601, + "id": 682, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13105:17:0", + "scope": 731, + "src": "15297:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9637,10 +11094,10 @@ "typeString": "uint256" }, "typeName": { - "id": 600, + "id": 681, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13105:7:0", + "src": "15297:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9651,11 +11108,11 @@ }, { "constant": false, - "id": 603, - "name": "dataGas", + "id": 684, + "name": "baseGas", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13132:15:0", + "scope": 731, + "src": "15325:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9663,10 +11120,10 @@ "typeString": "uint256" }, "typeName": { - "id": 602, + "id": 683, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13132:7:0", + "src": "15325:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9677,11 +11134,11 @@ }, { "constant": false, - "id": 605, + "id": 686, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13157:16:0", + "scope": 731, + "src": "15351:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9689,10 +11146,10 @@ "typeString": "uint256" }, "typeName": { - "id": 604, + "id": 685, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13157:7:0", + "src": "15351:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9703,11 +11160,11 @@ }, { "constant": false, - "id": 607, + "id": 688, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13183:16:0", + "scope": 731, + "src": "15377:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9715,10 +11172,11 @@ "typeString": "address" }, "typeName": { - "id": 606, + "id": 687, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13183:7:0", + "src": "15377:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9729,11 +11187,11 @@ }, { "constant": false, - "id": 609, + "id": 690, "name": "refundReceiver", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13209:22:0", + "scope": 731, + "src": "15403:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9741,10 +11199,11 @@ "typeString": "address" }, "typeName": { - "id": 608, + "id": 689, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13209:7:0", + "src": "15403:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9755,11 +11214,11 @@ }, { "constant": false, - "id": 611, + "id": 692, "name": "_nonce", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13241:14:0", + "scope": 731, + "src": "15435:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9767,10 +11226,10 @@ "typeString": "uint256" }, "typeName": { - "id": 610, + "id": 691, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13241:7:0", + "src": "15435:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9780,31 +11239,30 @@ "visibility": "internal" } ], - "src": "12998:263:0" + "src": "15179:276:0" }, - "payable": false, "returnParameters": { - "id": 615, + "id": 696, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 614, + "id": 695, "name": "", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13307:5:0", + "scope": 731, + "src": "15501:12:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 613, + "id": 694, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "13307:5:0", + "src": "15501:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9814,19 +11272,19 @@ "visibility": "internal" } ], - "src": "13306:7:0" + "src": "15500:14:0" }, - "scope": 692, - "src": "12968:635:0", + "scope": 773, + "src": "15149:658:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 690, + "id": 771, "nodeType": "Block", - "src": "14638:148:0", + "src": "16855:148:0", "statements": [ { "expression": { @@ -9837,12 +11295,12 @@ "arguments": [ { "argumentTypes": null, - "id": 677, + "id": 758, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 652, - "src": "14687:2:0", + "referencedDeclaration": 733, + "src": "16904:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9850,12 +11308,12 @@ }, { "argumentTypes": null, - "id": 678, + "id": 759, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "14691:5:0", + "referencedDeclaration": 735, + "src": "16908:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9863,12 +11321,12 @@ }, { "argumentTypes": null, - "id": 679, + "id": 760, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "14698:4:0", + "referencedDeclaration": 737, + "src": "16915:4:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -9876,25 +11334,25 @@ }, { "argumentTypes": null, - "id": 680, + "id": 761, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "14704:9:0", + "referencedDeclaration": 739, + "src": "16921:9:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 681, + "id": 762, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 660, - "src": "14715:9:0", + "referencedDeclaration": 741, + "src": "16932:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9902,12 +11360,12 @@ }, { "argumentTypes": null, - "id": 682, - "name": "dataGas", + "id": 763, + "name": "baseGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 662, - "src": "14726:7:0", + "referencedDeclaration": 743, + "src": "16943:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9915,12 +11373,12 @@ }, { "argumentTypes": null, - "id": 683, + "id": 764, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 664, - "src": "14735:8:0", + "referencedDeclaration": 745, + "src": "16952:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9928,12 +11386,12 @@ }, { "argumentTypes": null, - "id": 684, + "id": 765, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "14745:8:0", + "referencedDeclaration": 747, + "src": "16962:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9941,12 +11399,12 @@ }, { "argumentTypes": null, - "id": 685, + "id": 766, "name": "refundReceiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "14755:14:0", + "referencedDeclaration": 749, + "src": "16972:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9954,12 +11412,12 @@ }, { "argumentTypes": null, - "id": 686, + "id": 767, "name": "_nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "14771:6:0", + "referencedDeclaration": 751, + "src": "16988:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9981,7 +11439,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -10009,18 +11467,18 @@ "typeString": "uint256" } ], - "id": 676, + "id": 757, "name": "encodeTransactionData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 650, - "src": "14665:21:0", + "referencedDeclaration": 731, + "src": "16882:21:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "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": 687, + "id": 768, "isConstant": false, "isLValue": false, "isPure": false, @@ -10028,7 +11486,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14665:113:0", + "src": "16882:113:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -10042,18 +11500,18 @@ "typeString": "bytes memory" } ], - "id": 675, + "id": 756, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "14655:9:0", + "referencedDeclaration": 4360, + "src": "16872:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 688, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -10061,38 +11519,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14655:124:0", + "src": "16872:124:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 674, - "id": 689, + "functionReturnParameters": 755, + "id": 770, "nodeType": "Return", - "src": "14648:131:0" + "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 dataGas 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": 691, + "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, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 671, + "id": 752, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 652, + "id": 733, "name": "to", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14326:10:0", + "scope": 772, + "src": "16530:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10100,10 +11557,11 @@ "typeString": "address" }, "typeName": { - "id": 651, + "id": 732, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14326:7:0", + "src": "16530:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10114,11 +11572,11 @@ }, { "constant": false, - "id": 654, + "id": 735, "name": "value", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14346:13:0", + "scope": 772, + "src": "16551:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10126,10 +11584,10 @@ "typeString": "uint256" }, "typeName": { - "id": 653, + "id": 734, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14346:7:0", + "src": "16551:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10140,22 +11598,22 @@ }, { "constant": false, - "id": 656, + "id": 737, "name": "data", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14369:10:0", + "scope": 772, + "src": "16575:17:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 655, + "id": 736, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "14369:5:0", + "src": "16575:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -10166,26 +11624,26 @@ }, { "constant": false, - "id": 658, + "id": 739, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14389:24:0", + "scope": 772, + "src": "16603:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 657, + "id": 738, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "14389:14:0", + "referencedDeclaration": 1802, + "src": "16603:14:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -10194,11 +11652,11 @@ }, { "constant": false, - "id": 660, + "id": 741, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14423:17:0", + "scope": 772, + "src": "16638:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10206,10 +11664,10 @@ "typeString": "uint256" }, "typeName": { - "id": 659, + "id": 740, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14423:7:0", + "src": "16638:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10220,11 +11678,11 @@ }, { "constant": false, - "id": 662, - "name": "dataGas", + "id": 743, + "name": "baseGas", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14450:15:0", + "scope": 772, + "src": "16666:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10232,10 +11690,10 @@ "typeString": "uint256" }, "typeName": { - "id": 661, + "id": 742, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14450:7:0", + "src": "16666:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10246,11 +11704,11 @@ }, { "constant": false, - "id": 664, + "id": 745, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14475:16:0", + "scope": 772, + "src": "16692:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10258,10 +11716,10 @@ "typeString": "uint256" }, "typeName": { - "id": 663, + "id": 744, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14475:7:0", + "src": "16692:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10272,11 +11730,11 @@ }, { "constant": false, - "id": 666, + "id": 747, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14501:16:0", + "scope": 772, + "src": "16718:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10284,10 +11742,11 @@ "typeString": "address" }, "typeName": { - "id": 665, + "id": 746, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14501:7:0", + "src": "16718:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10298,11 +11757,11 @@ }, { "constant": false, - "id": 668, + "id": 749, "name": "refundReceiver", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14527:22:0", + "scope": 772, + "src": "16744:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10310,10 +11769,11 @@ "typeString": "address" }, "typeName": { - "id": 667, + "id": 748, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14527:7:0", + "src": "16744:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10324,11 +11784,11 @@ }, { "constant": false, - "id": 670, + "id": 751, "name": "_nonce", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14559:14:0", + "scope": 772, + "src": "16776:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10336,10 +11796,10 @@ "typeString": "uint256" }, "typeName": { - "id": 669, + "id": 750, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14559:7:0", + "src": "16776:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10349,20 +11809,19 @@ "visibility": "internal" } ], - "src": "14316:263:0" + "src": "16520:276:0" }, - "payable": false, "returnParameters": { - "id": 674, + "id": 755, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 673, + "id": 754, "name": "", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14625:7:0", + "scope": 772, + "src": "16842:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10370,10 +11829,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 672, + "id": 753, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "14625:7:0", + "src": "16842:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10383,228 +11842,267 @@ "visibility": "internal" } ], - "src": "14624:9:0" + "src": "16841:9:0" }, - "scope": 692, - "src": "14289:497:0", + "scope": 773, + "src": "16493:510:0", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 693, - "src": "534:14254:0" + "scope": 774, + "src": "568:16437:0" } ], - "src": "0:14789:0" + "src": "0:17006:0" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "exportedSymbols": { "GnosisSafe": [ - 692 + 773 ] }, - "id": 693, + "id": 774, "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:0" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", "file": "./base/BaseSafe.sol", "id": 2, "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 783, + "scope": 774, + "sourceUnit": 864, "src": "24:29:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", "file": "./common/MasterCopy.sol", "id": 3, "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1694, + "scope": 774, + "sourceUnit": 1840, "src": "54:33:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", "file": "./common/SignatureDecoder.sol", "id": 4, "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1792, + "scope": 774, + "sourceUnit": 1938, "src": "88:39:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", "file": "./common/SecuredTokenTransfer.sol", "id": 5, "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1719, + "scope": 774, + "sourceUnit": 1865, "src": "128:43:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", "file": "./interfaces/ISignatureValidator.sol", "id": 6, "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1804, + "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": 7, + "id": 8, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1693, - "src": "557:10:0", + "referencedDeclaration": 1839, + "src": "591:10:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$1693", + "typeIdentifier": "t_contract$_MasterCopy_$1839", "typeString": "contract MasterCopy" } }, - "id": 8, + "id": 9, "nodeType": "InheritanceSpecifier", - "src": "557:10:0" + "src": "591:10:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 9, + "id": 10, "name": "BaseSafe", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 782, - "src": "569:8:0", + "referencedDeclaration": 863, + "src": "603:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_BaseSafe_$782", + "typeIdentifier": "t_contract$_BaseSafe_$863", "typeString": "contract BaseSafe" } }, - "id": 10, + "id": 11, "nodeType": "InheritanceSpecifier", - "src": "569:8:0" + "src": "603:8:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 11, + "id": 12, "name": "SignatureDecoder", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1791, - "src": "579:16:0", + "referencedDeclaration": 1937, + "src": "613:16:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureDecoder_$1791", + "typeIdentifier": "t_contract$_SignatureDecoder_$1937", "typeString": "contract SignatureDecoder" } }, - "id": 12, + "id": 13, "nodeType": "InheritanceSpecifier", - "src": "579:16:0" + "src": "613:16:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 13, + "id": 14, "name": "SecuredTokenTransfer", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1718, - "src": "597:20:0", + "referencedDeclaration": 1864, + "src": "631:20:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1718", + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1864", "typeString": "contract SecuredTokenTransfer" } }, - "id": 14, + "id": 15, "nodeType": "InheritanceSpecifier", - "src": "597:20:0" + "src": "631:20:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 15, + "id": 16, "name": "ISignatureValidator", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1803, - "src": "619:19:0", + "referencedDeclaration": 2080, + "src": "653:19:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISignatureValidator_$1803", + "typeIdentifier": "t_contract$_ISignatureValidator_$2080", "typeString": "contract ISignatureValidator" } }, - "id": 16, + "id": 17, "nodeType": "InheritanceSpecifier", - "src": "619:19:0" + "src": "653:19:0" } ], "contractDependencies": [ - 782, - 892, - 1212, - 1652, - 1666, - 1693, - 1718, - 1735, - 1791, - 1803 + 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": 692, + "id": 773, "linearizedBaseContracts": [ - 692, - 1803, - 1718, - 1791, - 782, - 1652, - 1212, - 892, - 1666, - 1693, - 1735 + 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": 19, + "id": 23, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "646:43:0", + "scope": 773, + "src": "713:43:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10612,10 +12110,10 @@ "typeString": "string" }, "typeName": { - "id": 17, + "id": 21, "name": "string", "nodeType": "ElementaryTypeName", - "src": "646:6:0", + "src": "713:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -10624,14 +12122,14 @@ "value": { "argumentTypes": null, "hexValue": "476e6f7369732053616665", - "id": 18, + "id": 22, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "676:13:0", + "src": "743:13:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_72ec6775392f699e8ffd72b7c600556d49bdc746bf22bce93d3ae6019cdaff63", @@ -10643,11 +12141,11 @@ }, { "constant": true, - "id": 22, + "id": 26, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "695:40:0", + "scope": 773, + "src": "762:40:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10655,10 +12153,10 @@ "typeString": "string" }, "typeName": { - "id": 20, + "id": 24, "name": "string", "nodeType": "ElementaryTypeName", - "src": "695:6:0", + "src": "762:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -10666,31 +12164,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e32", - "id": 21, + "hexValue": "312e302e30", + "id": 25, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "728:7:0", + "src": "795:7:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" + "typeIdentifier": "t_stringliteral_06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c", + "typeString": "literal_string \"1.0.0\"" }, - "value": "0.0.2" + "value": "1.0.0" }, "visibility": "public" }, { "constant": true, - "id": 25, + "id": 29, "name": "DOMAIN_SEPARATOR_TYPEHASH", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "820:118:0", + "scope": 773, + "src": "887:118:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10698,10 +12196,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 23, + "id": 27, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "820:7:0", + "src": "887:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10710,14 +12208,14 @@ "value": { "argumentTypes": null, "hexValue": "307830333561666638336438363933376433356233326530346630646463366666343639323930656566326631623639326438613831356338393430346434373439", - "id": 24, + "id": 28, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "872:66:0", + "src": "939:66:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1517718281442037948617199096126532355110765202990829672390711201829802035017_by_1", @@ -10729,11 +12227,11 @@ }, { "constant": true, - "id": 28, + "id": 32, "name": "SAFE_TX_TYPEHASH", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1148:109:0", + "scope": 773, + "src": "1215:109:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10741,10 +12239,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 26, + "id": 30, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1148:7:0", + "src": "1215:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10752,31 +12250,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "307831346434363162633734313233363765393234363337623336336337626632396238663437653266383438363966343432366535363333643861663437623230", - "id": 27, + "hexValue": "307862623833313064343836333638646236626436663834393430326664643733616435336433313662356134623236343461643665666530663934313238366438", + "id": 31, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1191:66:0", + "src": "1258:66:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_9421503099487675527562227662599058764916562750590033657944341861770225548064_by_1", - "typeString": "int_const 9421...(68 digits omitted)...8064" + "typeIdentifier": "t_rational_84814075808141314178395468817534025465894426928601295766380145544921651250904_by_1", + "typeString": "int_const 8481...(69 digits omitted)...0904" }, - "value": "0x14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b20" + "value": "0xbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d8" }, "visibility": "public" }, { "constant": true, - "id": 31, + "id": 35, "name": "SAFE_MSG_TYPEHASH", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1329:110:0", + "scope": 773, + "src": "1396:110:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10784,10 +12282,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 29, + "id": 33, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1329:7:0", + "src": "1396:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10796,14 +12294,14 @@ "value": { "argumentTypes": null, "hexValue": "307836306233636266386234613232336436386436343162336236646466396132393865376633333731306366336433613964313134366235613631353066626361", - "id": 30, + "id": 34, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1373:66:0", + "src": "1440:66:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_43739706848186989041152069077571617734008543096732098246335109361212071148490_by_1", @@ -10816,21 +12314,21 @@ { "anonymous": false, "documentation": null, - "id": 35, + "id": 39, "name": "ExecutionFailed", "nodeType": "EventDefinition", "parameters": { - "id": 34, + "id": 38, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33, + "id": 37, "indexed": false, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 35, - "src": "1468:14:0", + "scope": 39, + "src": "1535:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10838,10 +12336,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 32, + "id": 36, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1468:7:0", + "src": "1535:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10851,17 +12349,17 @@ "visibility": "internal" } ], - "src": "1467:16:0" + "src": "1534:16:0" }, - "src": "1446:38:0" + "src": "1513:38:0" }, { "constant": false, - "id": 37, + "id": 41, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1490:20:0", + "scope": 773, + "src": "1557:20:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10869,10 +12367,10 @@ "typeString": "uint256" }, "typeName": { - "id": 36, + "id": 40, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1490:7:0", + "src": "1557:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10883,11 +12381,11 @@ }, { "constant": false, - "id": 39, + "id": 43, "name": "domainSeparator", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1516:30:0", + "scope": 773, + "src": "1583:30:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10895,10 +12393,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 38, + "id": 42, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1516:7:0", + "src": "1583:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10909,11 +12407,11 @@ }, { "constant": false, - "id": 43, + "id": 47, "name": "signedMessages", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1649:49:0", + "scope": 773, + "src": "1716:49:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10921,28 +12419,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 42, + "id": 46, "keyType": { - "id": 40, + "id": 44, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1657:7:0", + "src": "1724:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1649:27:0", + "src": "1716:27:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 41, + "id": 45, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1668:7:0", + "src": "1735:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10954,11 +12452,11 @@ }, { "constant": false, - "id": 49, + "id": 53, "name": "approvedHashes", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1809:69:0", + "scope": 773, + "src": "1876:69:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10966,46 +12464,46 @@ "typeString": "mapping(address => mapping(bytes32 => uint256))" }, "typeName": { - "id": 48, + "id": 52, "keyType": { - "id": 44, + "id": 48, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1817:7:0", + "src": "1884:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1809:47:0", + "src": "1876:47:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", "typeString": "mapping(address => mapping(bytes32 => uint256))" }, "valueType": { - "id": 47, + "id": 51, "keyType": { - "id": 45, + "id": 49, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1836:7:0", + "src": "1903:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1828:27:0", + "src": "1895:27:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 46, + "id": 50, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1847:7:0", + "src": "1914:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11018,9 +12516,9 @@ }, { "body": { - "id": 85, + "id": 108, "nodeType": "Block", - "src": "2295:211:0", + "src": "2676:610:0", "statements": [ { "expression": { @@ -11032,19 +12530,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 64, + "id": 74, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 62, + "id": 72, "name": "domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "2313:15:0", + "referencedDeclaration": 43, + "src": "2694:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11055,14 +12553,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 63, + "id": 73, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2332:1:0", + "src": "2713:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11070,7 +12568,7 @@ }, "value": "0" }, - "src": "2313:20:0", + "src": "2694:20:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11079,14 +12577,14 @@ { "argumentTypes": null, "hexValue": "446f6d61696e20536570617261746f7220616c72656164792073657421", - "id": 65, + "id": 75, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2335:31:0", + "src": "2716:31:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a2e1f2db9cd32eaa6a2caa3d6caa726a30dc0417d866440bfe13d6a6d030e5e2", @@ -11106,21 +12604,21 @@ "typeString": "literal_string \"Domain Separator already set!\"" } ], - "id": 61, + "id": 71, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2305:7:0", + "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": 66, + "id": 76, "isConstant": false, "isLValue": false, "isPure": false, @@ -11128,32 +12626,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2305:62:0", + "src": "2686:62:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 67, + "id": 77, "nodeType": "ExpressionStatement", - "src": "2305:62:0" + "src": "2686:62:0" }, { "expression": { "argumentTypes": null, - "id": 76, + "id": 86, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 68, + "id": 78, "name": "domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "2377:15:0", + "referencedDeclaration": 43, + "src": "2758:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11169,12 +12667,12 @@ "arguments": [ { "argumentTypes": null, - "id": 72, + "id": 82, "name": "DOMAIN_SEPARATOR_TYPEHASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "2416:25:0", + "referencedDeclaration": 29, + "src": "2797:25:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11182,14 +12680,14 @@ }, { "argumentTypes": null, - "id": 73, + "id": 83, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4052, - "src": "2443:4:0", + "referencedDeclaration": 4406, + "src": "2824:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$692", + "typeIdentifier": "t_contract$_GnosisSafe_$773", "typeString": "contract GnosisSafe" } } @@ -11201,24 +12699,24 @@ "typeString": "bytes32" }, { - "typeIdentifier": "t_contract$_GnosisSafe_$692", + "typeIdentifier": "t_contract$_GnosisSafe_$773", "typeString": "contract GnosisSafe" } ], "expression": { "argumentTypes": null, - "id": 70, + "id": 80, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "2405:3:0", + "referencedDeclaration": 4353, + "src": "2786:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 71, + "id": 81, "isConstant": false, "isLValue": false, "isPure": true, @@ -11226,13 +12724,13 @@ "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2405:10:0", + "src": "2786:10:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 74, + "id": 84, "isConstant": false, "isLValue": false, "isPure": false, @@ -11240,7 +12738,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2405:43:0", + "src": "2786:43:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -11254,18 +12752,18 @@ "typeString": "bytes memory" } ], - "id": 69, + "id": 79, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "2395:9:0", + "referencedDeclaration": 4360, + "src": "2776:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 75, + "id": 85, "isConstant": false, "isLValue": false, "isPure": false, @@ -11273,21 +12771,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2395:54:0", + "src": "2776:54:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "2377:72:0", + "src": "2758:72:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 77, + "id": 87, "nodeType": "ExpressionStatement", - "src": "2377:72:0" + "src": "2758:72:0" }, { "expression": { @@ -11295,25 +12793,25 @@ "arguments": [ { "argumentTypes": null, - "id": 79, + "id": 89, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "2469:7:0", + "referencedDeclaration": 56, + "src": "2850:7:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" } }, { "argumentTypes": null, - "id": 80, + "id": 90, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "2478:10:0", + "referencedDeclaration": 58, + "src": "2859:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11321,12 +12819,12 @@ }, { "argumentTypes": null, - "id": 81, + "id": 91, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "2490:2:0", + "referencedDeclaration": 60, + "src": "2871:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11334,23 +12832,23 @@ }, { "argumentTypes": null, - "id": 82, + "id": 92, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "2494:4:0", + "referencedDeclaration": 62, + "src": "2875:4:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" }, { "typeIdentifier": "t_uint256", @@ -11361,22 +12859,22 @@ "typeString": "address" }, { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } ], - "id": 78, + "id": 88, "name": "setupSafe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 781, - "src": "2459:9:0", + "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": 83, + "id": 93, "isConstant": false, "isLValue": false, "isPure": false, @@ -11384,58 +12882,253 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2459:40:0", + "src": "2840:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 84, + "id": 94, "nodeType": "ExpressionStatement", - "src": "2459:40:0" + "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.", - "id": 86, + "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, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 59, + "id": 69, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 52, + "id": 56, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2213:17:0", + "scope": 109, + "src": "2502:26:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 50, + "id": 54, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2213:7:0", + "src": "2502:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 51, + "id": 55, "length": null, "nodeType": "ArrayTypeName", - "src": "2213:9:0", + "src": "2502:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -11446,11 +13139,11 @@ }, { "constant": false, - "id": 54, + "id": 58, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2232:18:0", + "scope": 109, + "src": "2530:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11458,10 +13151,10 @@ "typeString": "uint256" }, "typeName": { - "id": 53, + "id": 57, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2232:7:0", + "src": "2530:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11472,11 +13165,11 @@ }, { "constant": false, - "id": 56, + "id": 60, "name": "to", "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2252:10:0", + "scope": 109, + "src": "2550:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11484,10 +13177,11 @@ "typeString": "address" }, "typeName": { - "id": 55, + "id": 59, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2252:7:0", + "src": "2550:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11498,22 +13192,22 @@ }, { "constant": false, - "id": 58, + "id": 62, "name": "data", "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2264:10:0", + "scope": 109, + "src": "2562:19:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 57, + "id": 61, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2264:5:0", + "src": "2562:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -11521,107 +13215,120 @@ }, "value": null, "visibility": "internal" - } - ], - "src": "2212:63:0" - }, - "payable": false, - "returnParameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [], - "src": "2295:0:0" - }, - "scope": 692, - "src": "2198:308:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 197, - "nodeType": "Block", - "src": "3833:1110:0", - "statements": [ + }, { - "assignments": [ - 112 - ], - "declarations": [ - { - "constant": false, - "id": 112, - "name": "startGas", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3843:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 111, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3843:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "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" } - ], - "id": 115, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 113, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "3862:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3862:9:0", + }, + "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" } }, - "nodeType": "VariableDeclarationStatement", - "src": "3843:28:0" + "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": [ - 117 + 135 ], "declarations": [ { "constant": false, - "id": 117, + "id": 135, "name": "txHashData", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3881:23:0", + "scope": 225, + "src": "4694:23:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -11629,10 +13336,10 @@ "typeString": "bytes" }, "typeName": { - "id": 116, + "id": 134, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3881:5:0", + "src": "4694:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -11642,18 +13349,18 @@ "visibility": "internal" } ], - "id": 130, + "id": 148, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 119, + "id": 137, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "3942:2:0", + "referencedDeclaration": 111, + "src": "4755:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11661,12 +13368,12 @@ }, { "argumentTypes": null, - "id": 120, + "id": 138, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "3946:5:0", + "referencedDeclaration": 113, + "src": "4759:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11674,38 +13381,38 @@ }, { "argumentTypes": null, - "id": 121, + "id": 139, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "3953:4:0", + "referencedDeclaration": 115, + "src": "4766:4:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } }, { "argumentTypes": null, - "id": 122, + "id": 140, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "3959:9:0", + "referencedDeclaration": 117, + "src": "4772:9:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 123, + "id": 141, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4002:9:0", + "referencedDeclaration": 119, + "src": "4815:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11713,12 +13420,12 @@ }, { "argumentTypes": null, - "id": 124, - "name": "dataGas", + "id": 142, + "name": "baseGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "4013:7:0", + "referencedDeclaration": 121, + "src": "4826:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11726,12 +13433,12 @@ }, { "argumentTypes": null, - "id": 125, + "id": 143, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4022:8:0", + "referencedDeclaration": 123, + "src": "4835:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11739,12 +13446,12 @@ }, { "argumentTypes": null, - "id": 126, + "id": 144, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 102, - "src": "4032:8:0", + "referencedDeclaration": 125, + "src": "4845:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11752,25 +13459,25 @@ }, { "argumentTypes": null, - "id": 127, + "id": 145, "name": "refundReceiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 104, - "src": "4042:14:0", + "referencedDeclaration": 127, + "src": "4855:14:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, { "argumentTypes": null, - "id": 128, + "id": 146, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "4086:5:0", + "referencedDeclaration": 41, + "src": "4899:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11788,11 +13495,11 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -11812,26 +13519,26 @@ "typeString": "address" }, { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 118, + "id": 136, "name": "encodeTransactionData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 650, - "src": "3907:21:0", + "referencedDeclaration": 731, + "src": "4720:21:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "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": 129, + "id": 147, "isConstant": false, "isLValue": false, "isPure": false, @@ -11839,14 +13546,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3907:194:0", + "src": "4720:194:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "3881:220:0" + "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": { @@ -11857,129 +13598,37 @@ "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 134, - "name": "txHashData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4145:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 133, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4135:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4135:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 136, + "id": 154, "name": "txHashData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4158:10:0", + "referencedDeclaration": 135, + "src": "5018:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } - }, - { - "argumentTypes": null, - "id": 137, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "4170:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4182: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_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" } ], - "id": 132, - "name": "checkSignatures", + "id": 153, + "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "4119:15:0", + "referencedDeclaration": 4360, + "src": "5008:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory,bytes memory,bool) returns (bool)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 139, + "id": 155, "isConstant": false, "isLValue": false, "isPure": false, @@ -11987,57 +13636,88 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4119:68:0", + "src": "5008:21:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, { "argumentTypes": null, - "hexValue": "496e76616c6964207369676e6174757265732070726f7669646564", - "id": 140, + "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": "string", + "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4189:29:0", + "src": "5055:4:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_85bcea44c930431ef19052d068cc504a81260341ae6c5ee84bb5a38ec55acf05", - "typeString": "literal_string \"Invalid signatures provided\"" + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "value": "Invalid signatures provided" + "value": "true" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, { - "typeIdentifier": "t_stringliteral_85bcea44c930431ef19052d068cc504a81260341ae6c5ee84bb5a38ec55acf05", - "typeString": "literal_string \"Invalid signatures provided\"" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "id": 131, - "name": "require", + "id": 152, + "name": "checkSignatures", "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "4111:7:0", + "overloadedDeclarations": [], + "referencedDeclaration": 506, + "src": "4992:15:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "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": 141, + "id": 159, "isConstant": false, "isLValue": false, "isPure": false, @@ -12045,49 +13725,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4111:108:0", + "src": "4992:68:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 142, + "id": 160, "nodeType": "ExpressionStatement", - "src": "4111:108:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4280:7:0", - "subExpression": { - "argumentTypes": null, - "id": 143, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "4280:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 145, - "nodeType": "ExpressionStatement", - "src": "4280:7:0" + "src": "4992:68:0" }, { "expression": { @@ -12099,7 +13745,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 150, + "id": 165, "isConstant": false, "isLValue": false, "isPure": false, @@ -12109,18 +13755,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 147, + "id": 162, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "4305:7:0", + "referencedDeclaration": 4359, + "src": "5078:7:0", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 148, + "id": 163, "isConstant": false, "isLValue": false, "isPure": false, @@ -12128,7 +13774,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4305:9:0", + "src": "5078:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12138,18 +13784,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 149, + "id": 164, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4318:9:0", + "referencedDeclaration": 119, + "src": "5091:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4305:22:0", + "src": "5078:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12158,14 +13804,14 @@ { "argumentTypes": null, "hexValue": "4e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6e", - "id": 151, + "id": 166, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4329:44:0", + "src": "5102:44:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", @@ -12185,21 +13831,21 @@ "typeString": "literal_string \"Not enough gas to execute safe transaction\"" } ], - "id": 146, + "id": 161, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "4297:7:0", + "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": 152, + "id": 167, "isConstant": false, "isLValue": false, "isPure": false, @@ -12207,32 +13853,98 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4297:77:0", + "src": "5070:77:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 153, + "id": 168, "nodeType": "ExpressionStatement", - "src": "4297:77:0" + "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": 172, + "id": 192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 154, + "id": 174, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "4491:7:0", + "referencedDeclaration": 132, + "src": "5301:7:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12245,12 +13957,12 @@ "arguments": [ { "argumentTypes": null, - "id": 156, + "id": 176, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "4509:2:0", + "referencedDeclaration": 111, + "src": "5319:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12258,12 +13970,12 @@ }, { "argumentTypes": null, - "id": 157, + "id": 177, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "4513:5:0", + "referencedDeclaration": 113, + "src": "5323:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12271,27 +13983,27 @@ }, { "argumentTypes": null, - "id": 158, + "id": 178, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "4520:4:0", + "referencedDeclaration": 115, + "src": "5330:4:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } }, { "argumentTypes": null, - "id": 159, + "id": 179, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "4526:9:0", + "referencedDeclaration": 117, + "src": "5336:9:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -12303,7 +14015,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 166, + "id": 186, "isConstant": false, "isLValue": false, "isPure": false, @@ -12314,19 +14026,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 162, + "id": 182, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 160, + "id": 180, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4537:9:0", + "referencedDeclaration": 119, + "src": "5347:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12337,14 +14049,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 161, + "id": 181, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4550:1:0", + "src": "5360:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12352,7 +14064,7 @@ }, "value": "0" }, - "src": "4537:14:0", + "src": "5347:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12366,19 +14078,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 165, + "id": 185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 163, + "id": 183, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4555:8:0", + "referencedDeclaration": 123, + "src": "5365:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12389,14 +14101,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 164, + "id": 184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4567:1:0", + "src": "5377:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12404,13 +14116,13 @@ }, "value": "0" }, - "src": "4555:13:0", + "src": "5365:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4537:31:0", + "src": "5347:31:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12418,41 +14130,41 @@ }, "falseExpression": { "argumentTypes": null, - "id": 169, + "id": 189, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4583:9:0", + "referencedDeclaration": 119, + "src": "5393:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 170, + "id": 190, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "4537:55:0", + "src": "5347:55:0", "trueExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 167, + "id": 187, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "4571:7:0", + "referencedDeclaration": 4359, + "src": "5381:7:0", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 168, + "id": 188, "isConstant": false, "isLValue": false, "isPure": false, @@ -12460,7 +14172,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4571:9:0", + "src": "5381:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12483,11 +14195,11 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -12495,18 +14207,18 @@ "typeString": "uint256" } ], - "id": 155, + "id": 175, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "4501:7:0", + "referencedDeclaration": 937, + "src": "5311:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", + "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": 171, + "id": 191, "isConstant": false, "isLValue": false, "isPure": false, @@ -12514,26 +14226,141 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4501:92:0", + "src": "5311:92:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4491:102:0", + "src": "5301:102:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 173, + "id": 193, "nodeType": "ExpressionStatement", - "src": "4491:102:0" + "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": 175, + "id": 203, "isConstant": false, "isLValue": false, "isPure": false, @@ -12541,15 +14368,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4607:8:0", + "src": "5459:8:0", "subExpression": { "argumentTypes": null, - "id": 174, + "id": 202, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "4608:7:0", + "referencedDeclaration": 132, + "src": "5460:7:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12561,13 +14388,13 @@ } }, "falseBody": null, - "id": 183, + "id": 211, "nodeType": "IfStatement", - "src": "4603:82:0", + "src": "5455:82:0", "trueBody": { - "id": 182, + "id": 210, "nodeType": "Block", - "src": "4617:68:0", + "src": "5469:68:0", "statements": [ { "eventCall": { @@ -12578,12 +14405,12 @@ "arguments": [ { "argumentTypes": null, - "id": 178, + "id": 206, "name": "txHashData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4662:10:0", + "referencedDeclaration": 135, + "src": "5514:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -12597,18 +14424,18 @@ "typeString": "bytes memory" } ], - "id": 177, + "id": 205, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4652:9:0", + "referencedDeclaration": 4360, + "src": "5504:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 179, + "id": 207, "isConstant": false, "isLValue": false, "isPure": false, @@ -12616,7 +14443,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4652:21:0", + "src": "5504:21:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12630,18 +14457,18 @@ "typeString": "bytes32" } ], - "id": 176, + "id": 204, "name": "ExecutionFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "4636:15:0", + "referencedDeclaration": 39, + "src": "5488:15:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 180, + "id": 208, "isConstant": false, "isLValue": false, "isPure": false, @@ -12649,15 +14476,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4636:38:0", + "src": "5488:38:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 181, + "id": 209, "nodeType": "EmitStatement", - "src": "4631:43:0" + "src": "5483:43:0" } ] } @@ -12669,19 +14496,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 186, + "id": 214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 184, + "id": 212, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4830:8:0", + "referencedDeclaration": 123, + "src": "5682:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12692,14 +14519,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 185, + "id": 213, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4841:1:0", + "src": "5693:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12707,20 +14534,20 @@ }, "value": "0" }, - "src": "4830:12:0", + "src": "5682:12:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 196, + "id": 224, "nodeType": "IfStatement", - "src": "4826:111:0", + "src": "5678:110:0", "trueBody": { - "id": 195, + "id": 223, "nodeType": "Block", - "src": "4844:93:0", + "src": "5696:92:0", "statements": [ { "expression": { @@ -12728,12 +14555,12 @@ "arguments": [ { "argumentTypes": null, - "id": 188, - "name": "startGas", + "id": 216, + "name": "gasUsed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4872:8:0", + "referencedDeclaration": 170, + "src": "5724:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12741,12 +14568,12 @@ }, { "argumentTypes": null, - "id": 189, - "name": "dataGas", + "id": 217, + "name": "baseGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "4882:7:0", + "referencedDeclaration": 121, + "src": "5733:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12754,12 +14581,12 @@ }, { "argumentTypes": null, - "id": 190, + "id": 218, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4891:8:0", + "referencedDeclaration": 123, + "src": "5742:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12767,12 +14594,12 @@ }, { "argumentTypes": null, - "id": 191, + "id": 219, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 102, - "src": "4901:8:0", + "referencedDeclaration": 125, + "src": "5752:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12780,15 +14607,15 @@ }, { "argumentTypes": null, - "id": 192, + "id": 220, "name": "refundReceiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 104, - "src": "4911:14:0", + "referencedDeclaration": 127, + "src": "5762:14:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], @@ -12811,22 +14638,22 @@ "typeString": "address" }, { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], - "id": 187, + "id": 215, "name": "handlePayment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 262, - "src": "4858:13:0", + "referencedDeclaration": 287, + "src": "5710:13:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$returns$__$", - "typeString": "function (uint256,uint256,uint256,address,address)" + "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": 193, + "id": 221, "isConstant": false, "isLValue": false, "isPure": false, @@ -12834,40 +14661,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4858:68:0", + "src": "5710:67:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 194, + "id": 222, "nodeType": "ExpressionStatement", - "src": "4858:68:0" + "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 dataGas Gas costs for data used to trigger the safe transaction and to pay the payment transfer\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": 198, + "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, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "execTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 107, + "id": 130, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 88, + "id": 111, "name": "to", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3527:10:0", + "scope": 226, + "src": "4350:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12875,10 +14701,11 @@ "typeString": "address" }, "typeName": { - "id": 87, + "id": 110, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3527:7:0", + "src": "4350:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12889,11 +14716,11 @@ }, { "constant": false, - "id": 90, + "id": 113, "name": "value", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3547:13:0", + "scope": 226, + "src": "4370:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12901,10 +14728,10 @@ "typeString": "uint256" }, "typeName": { - "id": 89, + "id": 112, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3547:7:0", + "src": "4370:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12915,22 +14742,22 @@ }, { "constant": false, - "id": 92, + "id": 115, "name": "data", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3570:10:0", + "scope": 226, + "src": "4393:19:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 91, + "id": 114, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3570:5:0", + "src": "4393:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -12941,26 +14768,26 @@ }, { "constant": false, - "id": 94, + "id": 117, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3590:24:0", + "scope": 226, + "src": "4422:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 93, + "id": 116, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "3590:14:0", + "referencedDeclaration": 1802, + "src": "4422:14:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -12969,11 +14796,11 @@ }, { "constant": false, - "id": 96, + "id": 119, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3624:17:0", + "scope": 226, + "src": "4456:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12981,10 +14808,10 @@ "typeString": "uint256" }, "typeName": { - "id": 95, + "id": 118, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3624:7:0", + "src": "4456:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12995,11 +14822,11 @@ }, { "constant": false, - "id": 98, - "name": "dataGas", + "id": 121, + "name": "baseGas", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3651:15:0", + "scope": 226, + "src": "4483:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13007,10 +14834,10 @@ "typeString": "uint256" }, "typeName": { - "id": 97, + "id": 120, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3651:7:0", + "src": "4483:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13021,11 +14848,11 @@ }, { "constant": false, - "id": 100, + "id": 123, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3676:16:0", + "scope": 226, + "src": "4508:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13033,10 +14860,10 @@ "typeString": "uint256" }, "typeName": { - "id": 99, + "id": 122, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3676:7:0", + "src": "4508:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13047,11 +14874,11 @@ }, { "constant": false, - "id": 102, + "id": 125, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3702:16:0", + "scope": 226, + "src": "4534:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13059,10 +14886,11 @@ "typeString": "address" }, "typeName": { - "id": 101, + "id": 124, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3702:7:0", + "src": "4534:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13073,25 +14901,26 @@ }, { "constant": false, - "id": 104, + "id": 127, "name": "refundReceiver", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3728:22:0", + "scope": 226, + "src": "4560:30:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, "typeName": { - "id": 103, + "id": 126, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3728:7:0", + "src": "4560:15:0", + "stateMutability": "payable", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "value": null, @@ -13099,22 +14928,22 @@ }, { "constant": false, - "id": 106, + "id": 129, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3760:16:0", + "scope": 226, + "src": "4600:25:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 105, + "id": 128, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3760:5:0", + "src": "4600:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -13124,20 +14953,19 @@ "visibility": "internal" } ], - "src": "3517:265:0" + "src": "4340:291:0" }, - "payable": false, "returnParameters": { - "id": 110, + "id": 133, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 109, + "id": 132, "name": "success", "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3815:12:0", + "scope": 226, + "src": "4666:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13145,10 +14973,10 @@ "typeString": "bool" }, "typeName": { - "id": 108, + "id": 131, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3815:4:0", + "src": "4666:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13158,32 +14986,32 @@ "visibility": "internal" } ], - "src": "3814:14:0" + "src": "4665:14:0" }, - "scope": 692, - "src": "3493:1450:0", + "scope": 773, + "src": "4316:1478:0", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 261, + "id": 286, "nodeType": "Block", - "src": "5132:532:0", + "src": "5991:526:0", "statements": [ { "assignments": [ - 212 + 240 ], "declarations": [ { "constant": false, - "id": 212, + "id": 240, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5142:14:0", + "scope": 286, + "src": "6001:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13191,10 +15019,10 @@ "typeString": "uint256" }, "typeName": { - "id": 211, + "id": 239, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5142:7:0", + "src": "6001:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13204,227 +15032,185 @@ "visibility": "internal" } ], - "id": 223, + "id": 248, "initialValue": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ + "arguments": [ + { + "argumentTypes": null, + "id": 246, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "6043:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "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": 219, + "id": 242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "gasUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "5161:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 214, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "5171:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5171:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5161:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 217, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5160:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 218, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 202, - "src": "5184:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5160:31:0", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2044, + "src": "6018:11:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "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": 220, + }, + "id": 245, "isConstant": false, - "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5159:33:0", + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 1972, + "src": "6018:24:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 221, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 204, - "src": "5195:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5159:44:0", + "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": "5142:61:0" + "src": "6001:51:0" }, { "assignments": [ - 225 + 250 ], "declarations": [ { "constant": false, - "id": 225, + "id": 250, "name": "receiver", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5271:16:0", + "scope": 286, + "src": "6120:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, "typeName": { - "id": 224, + "id": 249, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5271:7:0", + "src": "6120:15:0", + "stateMutability": "payable", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "value": null, "visibility": "internal" } ], - "id": 235, + "id": 260, "initialValue": { "argumentTypes": null, "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, - "id": 230, + "id": 255, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 226, + "id": 251, "name": "refundReceiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "5290:14:0", + "referencedDeclaration": 236, + "src": "6147:14:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "BinaryOperation", @@ -13435,14 +15221,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 228, + "id": 253, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5316:1:0", + "src": "6173:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13458,20 +15244,20 @@ "typeString": "int_const 0" } ], - "id": 227, + "id": 252, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5308:7:0", + "src": "6165:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 229, + "id": 254, "isConstant": false, "isLValue": false, "isPure": true, @@ -13479,13 +15265,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5308:10:0", + "src": "6165:10:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "src": "5290:28:0", + "src": "6147:28:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13493,40 +15279,40 @@ }, "falseExpression": { "argumentTypes": null, - "id": 233, + "id": 258, "name": "refundReceiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "5333:14:0", + "referencedDeclaration": 236, + "src": "6190:14:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "id": 234, + "id": 259, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "5290:57:0", + "src": "6147:57:0", "trueExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 231, + "id": 256, "name": "tx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4027, - "src": "5321:2:0", + "referencedDeclaration": 4378, + "src": "6178:2:0", "typeDescriptions": { "typeIdentifier": "t_magic_transaction", "typeString": "tx" } }, - "id": 232, + "id": 257, "isConstant": false, "isLValue": false, "isPure": false, @@ -13534,19 +15320,19 @@ "memberName": "origin", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5321:9:0", + "src": "6178:9:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "VariableDeclarationStatement", - "src": "5271:76:0" + "src": "6120:84:0" }, { "condition": { @@ -13555,19 +15341,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 240, + "id": 265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 236, + "id": 261, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 206, - "src": "5361:8:0", + "referencedDeclaration": 234, + "src": "6218:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13581,14 +15367,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 238, + "id": 263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5381:1:0", + "src": "6238:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13604,20 +15390,20 @@ "typeString": "int_const 0" } ], - "id": 237, + "id": 262, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5373:7:0", + "src": "6230:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 239, + "id": 264, "isConstant": false, "isLValue": false, "isPure": true, @@ -13625,22 +15411,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5373:10:0", + "src": "6230:10:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "src": "5361:22:0", + "src": "6218:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 259, + "id": 284, "nodeType": "Block", - "src": "5545:113:0", + "src": "6398:113:0", "statements": [ { "expression": { @@ -13651,12 +15437,12 @@ "arguments": [ { "argumentTypes": null, - "id": 252, + "id": 277, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 206, - "src": "5581:8:0", + "referencedDeclaration": 234, + "src": "6434:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13664,25 +15450,25 @@ }, { "argumentTypes": null, - "id": 253, + "id": 278, "name": "receiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "5591:8:0", + "referencedDeclaration": 250, + "src": "6444:8:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, { "argumentTypes": null, - "id": 254, + "id": 279, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "5601:6:0", + "referencedDeclaration": 240, + "src": "6454:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13696,26 +15482,26 @@ "typeString": "address" }, { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 251, + "id": 276, "name": "transferToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1717, - "src": "5567:13:0", + "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": 255, + "id": 280, "isConstant": false, "isLValue": false, "isPure": false, @@ -13723,7 +15509,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5567:41:0", + "src": "6420:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13732,14 +15518,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e", - "id": 256, + "id": 281, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5610:36:0", + "src": "6463:36:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", @@ -13759,21 +15545,21 @@ "typeString": "literal_string \"Could not pay gas costs with token\"" } ], - "id": 250, + "id": 275, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "5559:7:0", + "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": 257, + "id": 282, "isConstant": false, "isLValue": false, "isPure": false, @@ -13781,25 +15567,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5559:88:0", + "src": "6412:88:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 258, + "id": 283, "nodeType": "ExpressionStatement", - "src": "5559:88:0" + "src": "6412:88:0" } ] }, - "id": 260, + "id": 285, "nodeType": "IfStatement", - "src": "5357:301:0", + "src": "6214:297:0", "trueBody": { - "id": 249, + "id": 274, "nodeType": "Block", - "src": "5385:154:0", + "src": "6242:150:0", "statements": [ { "expression": { @@ -13810,12 +15596,12 @@ "arguments": [ { "argumentTypes": null, - "id": 244, + "id": 269, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "5482:6:0", + "referencedDeclaration": 240, + "src": "6335:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13831,18 +15617,18 @@ ], "expression": { "argumentTypes": null, - "id": 242, + "id": 267, "name": "receiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "5468:8:0", + "referencedDeclaration": 250, + "src": "6321:8:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "id": 243, + "id": 268, "isConstant": false, "isLValue": false, "isPure": false, @@ -13850,13 +15636,13 @@ "memberName": "send", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5468:13:0", + "src": "6321:13:0", "typeDescriptions": { "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) returns (bool)" } }, - "id": 245, + "id": 270, "isConstant": false, "isLValue": false, "isPure": false, @@ -13864,7 +15650,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5468:21:0", + "src": "6321:21:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13873,14 +15659,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792067617320636f7374732077697468206574686572", - "id": 246, + "id": 271, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5491:36:0", + "src": "6344:36:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", @@ -13900,21 +15686,21 @@ "typeString": "literal_string \"Could not pay gas costs with ether\"" } ], - "id": 241, + "id": 266, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "5460:7:0", + "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": 247, + "id": 272, "isConstant": false, "isLValue": false, "isPure": false, @@ -13922,15 +15708,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5460:68:0", + "src": "6313:68:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 248, + "id": 273, "nodeType": "ExpressionStatement", - "src": "5460:68:0" + "src": "6313:68:0" } ] } @@ -13938,24 +15724,23 @@ ] }, "documentation": null, - "id": 262, + "id": 287, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "handlePayment", "nodeType": "FunctionDefinition", "parameters": { - "id": 209, + "id": 237, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 200, + "id": 228, "name": "gasUsed", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4981:15:0", + "scope": 287, + "src": "5832:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13963,10 +15748,10 @@ "typeString": "uint256" }, "typeName": { - "id": 199, + "id": 227, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4981:7:0", + "src": "5832:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13977,11 +15762,11 @@ }, { "constant": false, - "id": 202, - "name": "dataGas", + "id": 230, + "name": "baseGas", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5006:15:0", + "scope": 287, + "src": "5857:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13989,10 +15774,10 @@ "typeString": "uint256" }, "typeName": { - "id": 201, + "id": 229, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5006:7:0", + "src": "5857:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14003,11 +15788,11 @@ }, { "constant": false, - "id": 204, + "id": 232, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5031:16:0", + "scope": 287, + "src": "5882:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14015,10 +15800,10 @@ "typeString": "uint256" }, "typeName": { - "id": 203, + "id": 231, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5031:7:0", + "src": "5882:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14029,11 +15814,11 @@ }, { "constant": false, - "id": 206, + "id": 234, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5057:16:0", + "scope": 287, + "src": "5908:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14041,10 +15826,11 @@ "typeString": "address" }, "typeName": { - "id": 205, + "id": 233, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5057:7:0", + "src": "5908:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14055,199 +15841,248 @@ }, { "constant": false, - "id": 208, + "id": 236, "name": "refundReceiver", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5083:22:0", + "scope": 287, + "src": "5934:30:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, "typeName": { - "id": 207, + "id": 235, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5083:7:0", + "src": "5934:15:0", + "stateMutability": "payable", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "value": null, "visibility": "internal" } ], - "src": "4971:140:0" + "src": "5822:148:0" }, - "payable": false, "returnParameters": { - "id": 210, + "id": 238, "nodeType": "ParameterList", "parameters": [], - "src": "5132:0:0" + "src": "5991:0:0" }, - "scope": 692, - "src": "4949:715:0", + "scope": 773, + "src": "5800:717:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { - "id": 427, + "id": 505, "nodeType": "Block", - "src": "6415:2326:0", + "src": "7198:3618:0", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "id": 275, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "6496:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6496:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 277, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "6516:9:0", - "typeDescriptions": { + "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" } }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { + { "argumentTypes": null, - "hexValue": "3635", - "id": 278, + "hexValue": "5369676e617475726573206461746120746f6f2073686f7274", + "id": 306, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6528:2:0", + "src": "7323:27:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" + "typeIdentifier": "t_stringliteral_17122174e7c2d723217ce151aacf64aec6d32748978cfd1a9479e00b57ac7dd5", + "typeString": "literal_string \"Signatures data too short\"" }, - "value": "65" - }, - "src": "6516:14:0", + "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_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "src": "6496:34:0", + "id": 307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7275:76:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "falseBody": null, - "id": 284, - "nodeType": "IfStatement", - "src": "6492:77:0", - "trueBody": { - "id": 283, - "nodeType": "Block", - "src": "6532:37:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6553:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 274, - "id": 282, - "nodeType": "Return", - "src": "6546:12:0" - } - ] - } + "id": 308, + "nodeType": "ExpressionStatement", + "src": "7275:76:0" }, { "assignments": [ - 286 + 310 ], "declarations": [ { "constant": false, - "id": 286, + "id": 310, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6630:17:0", + "scope": 505, + "src": "7413:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14255,10 +16090,11 @@ "typeString": "address" }, "typeName": { - "id": 285, + "id": 309, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6630:7:0", + "src": "7413:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14268,21 +16104,21 @@ "visibility": "internal" } ], - "id": 290, + "id": 314, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 288, + "id": 312, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6658:1:0", + "src": "7441:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14298,20 +16134,20 @@ "typeString": "int_const 0" } ], - "id": 287, + "id": 311, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6650:7:0", + "src": "7433:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 289, + "id": 313, "isConstant": false, "isLValue": false, "isPure": true, @@ -14319,25 +16155,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6650:10:0", + "src": "7433:10:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "VariableDeclarationStatement", - "src": "6630:30:0" + "src": "7413:30:0" }, { - "assignments": [], + "assignments": [ + 316 + ], "declarations": [ { "constant": false, - "id": 292, + "id": 316, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6670:20:0", + "scope": 505, + "src": "7453:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14345,10 +16183,11 @@ "typeString": "address" }, "typeName": { - "id": 291, + "id": 315, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6670:7:0", + "src": "7453:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14358,21 +16197,23 @@ "visibility": "internal" } ], - "id": 293, + "id": 317, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "6670:20:0" + "src": "7453:20:0" }, { - "assignments": [], + "assignments": [ + 319 + ], "declarations": [ { "constant": false, - "id": 295, + "id": 319, "name": "v", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6700:7:0", + "scope": 505, + "src": "7483:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14380,10 +16221,10 @@ "typeString": "uint8" }, "typeName": { - "id": 294, + "id": 318, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6700:5:0", + "src": "7483:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14393,21 +16234,23 @@ "visibility": "internal" } ], - "id": 296, + "id": 320, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "6700:7:0" + "src": "7483:7:0" }, { - "assignments": [], + "assignments": [ + 322 + ], "declarations": [ { "constant": false, - "id": 298, + "id": 322, "name": "r", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6717:9:0", + "scope": 505, + "src": "7500:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14415,10 +16258,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 297, + "id": 321, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6717:7:0", + "src": "7500:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14428,21 +16271,23 @@ "visibility": "internal" } ], - "id": 299, + "id": 323, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "6717:9:0" + "src": "7500:9:0" }, { - "assignments": [], + "assignments": [ + 325 + ], "declarations": [ { "constant": false, - "id": 301, + "id": 325, "name": "s", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6736:9:0", + "scope": 505, + "src": "7519:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14450,10 +16295,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 300, + "id": 324, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6736:7:0", + "src": "7519:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14463,21 +16308,23 @@ "visibility": "internal" } ], - "id": 302, + "id": 326, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "6736:9:0" + "src": "7519:9:0" }, { - "assignments": [], + "assignments": [ + 328 + ], "declarations": [ { "constant": false, - "id": 304, + "id": 328, "name": "i", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6755:9:0", + "scope": 505, + "src": "7538:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14485,10 +16332,10 @@ "typeString": "uint256" }, "typeName": { - "id": 303, + "id": 327, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6755:7:0", + "src": "7538:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14498,21 +16345,21 @@ "visibility": "internal" } ], - "id": 305, + "id": 329, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "6755:9:0" + "src": "7538:9:0" }, { "body": { - "id": 423, + "id": 503, "nodeType": "Block", - "src": "6806:1908:0", + "src": "7589:3221:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 324, + "id": 348, "isConstant": false, "isLValue": false, "isPure": false, @@ -14522,12 +16369,12 @@ "components": [ { "argumentTypes": null, - "id": 316, + "id": 340, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "6821:1:0", + "referencedDeclaration": 319, + "src": "7604:1:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14535,12 +16382,12 @@ }, { "argumentTypes": null, - "id": 317, + "id": 341, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "6824:1:0", + "referencedDeclaration": 322, + "src": "7607:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14548,26 +16395,26 @@ }, { "argumentTypes": null, - "id": 318, + "id": 342, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "6827:1:0", + "referencedDeclaration": 325, + "src": "7610:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 319, + "id": 343, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", - "src": "6820:9:0", + "src": "7603:9:0", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" @@ -14580,12 +16427,12 @@ "arguments": [ { "argumentTypes": null, - "id": 321, + "id": 345, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "6847:10:0", + "referencedDeclaration": 293, + "src": "7630:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -14593,12 +16440,12 @@ }, { "argumentTypes": null, - "id": 322, + "id": 346, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6859:1:0", + "referencedDeclaration": 328, + "src": "7642:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14616,18 +16463,18 @@ "typeString": "uint256" } ], - "id": 320, + "id": 344, "name": "signatureSplit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "6832:14:0", + "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": 323, + "id": 347, "isConstant": false, "isLValue": false, "isPure": false, @@ -14635,21 +16482,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6832:29:0", + "src": "7615:29:0", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" } }, - "src": "6820:41:0", + "src": "7603:41:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 325, + "id": 349, "nodeType": "ExpressionStatement", - "src": "6820:41:0" + "src": "7603:41:0" }, { "condition": { @@ -14658,19 +16505,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 328, + "id": 352, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 326, + "id": 350, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "6936:1:0", + "referencedDeclaration": 319, + "src": "7719:1:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14681,14 +16528,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 327, + "id": 351, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6941:1:0", + "src": "7724:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14696,7 +16543,7 @@ }, "value": "0" }, - "src": "6936:6:0", + "src": "7719:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14709,19 +16556,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 354, + "id": 426, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 352, + "id": 424, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "7691:1:0", + "referencedDeclaration": 319, + "src": "9768:1:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14732,14 +16579,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 353, + "id": 425, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7696:1:0", + "src": "9773:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -14747,33 +16594,33 @@ }, "value": "1" }, - "src": "7691:6:0", + "src": "9768:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 403, + "id": 477, "nodeType": "Block", - "src": "8399:149:0", + "src": "10466:149:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 401, + "id": 475, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 394, + "id": 468, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8490:12:0", + "referencedDeclaration": 316, + "src": "10557:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14786,12 +16633,12 @@ "arguments": [ { "argumentTypes": null, - "id": 396, + "id": 470, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "8515:8:0", + "referencedDeclaration": 289, + "src": "10582:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14799,12 +16646,12 @@ }, { "argumentTypes": null, - "id": 397, + "id": 471, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "8525:1:0", + "referencedDeclaration": 319, + "src": "10592:1:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14812,12 +16659,12 @@ }, { "argumentTypes": null, - "id": 398, + "id": 472, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "8528:1:0", + "referencedDeclaration": 322, + "src": "10595:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14825,12 +16672,12 @@ }, { "argumentTypes": null, - "id": 399, + "id": 473, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "8531:1:0", + "referencedDeclaration": 325, + "src": "10598:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14856,18 +16703,18 @@ "typeString": "bytes32" } ], - "id": 395, + "id": 469, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4007, - "src": "8505:9:0", + "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": 400, + "id": 474, "isConstant": false, "isLValue": false, "isPure": false, @@ -14875,48 +16722,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8505:28:0", + "src": "10572:28:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "8490:43:0", + "src": "10557:43:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 402, + "id": 476, "nodeType": "ExpressionStatement", - "src": "8490:43:0" + "src": "10557:43:0" } ] }, - "id": 404, + "id": 478, "nodeType": "IfStatement", - "src": "7687:861:0", + "src": "9764:851:0", "trueBody": { - "id": 393, + "id": 467, "nodeType": "Block", - "src": "7699:694:0", + "src": "9776:684:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 359, + "id": 433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 355, + "id": 427, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "7812:12:0", + "referencedDeclaration": 316, + "src": "9889:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14929,39 +16776,77 @@ "arguments": [ { "argumentTypes": null, - "id": 357, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "7835:1:0", + "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_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 356, + "id": 428, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7827:7:0", + "src": "9904:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 358, + "id": 432, "isConstant": false, "isLValue": false, "isPure": false, @@ -14969,380 +16854,137 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7827:10:0", + "src": "9904:19:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "src": "7812:25:0", + "src": "9889:34:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 360, + "id": 434, "nodeType": "ExpressionStatement", - "src": "7812:25:0" + "src": "9889:34:0" }, { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "arguments": [ + { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 361, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "8004:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "id": 362, + "id": 447, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8004:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 363, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8018:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8004:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { + "leftExpression": { "argumentTypes": null, - "baseExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 365, - "name": "approvedHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "8034:14:0", + "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_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "id": 367, - "indexExpression": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "id": 366, + "id": 438, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8049:12:0", + "referencedDeclaration": 316, + "src": "10108:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8034:28:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 369, - "indexExpression": { - "argumentTypes": null, - "id": 368, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "8063:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8034:38:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8076:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8034:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8004:73:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 376, - "nodeType": "IfStatement", - "src": "8000:132:0", - "trueBody": { - "id": 375, - "nodeType": "Block", - "src": "8079:53:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8108:5:0", - "subdenomination": null, + "src": "10094:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 274, - "id": 374, - "nodeType": "Return", - "src": "8101:12:0" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 377, - "name": "consumeHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "8253:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 378, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "8268:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" } }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8268:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 380, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8282:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8268:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8253:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 392, - "nodeType": "IfStatement", - "src": "8249:130:0", - "trueBody": { - "id": 391, - "nodeType": "Block", - "src": "8296:83:0", - "statements": [ - { - "expression": { + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { "argumentTypes": null, - "id": 389, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 446, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 383, + "id": 440, "name": "approvedHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "8318:14:0", + "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": 386, + "id": 442, "indexExpression": { "argumentTypes": null, - "id": 384, + "id": 441, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8333:12:0", + "referencedDeclaration": 316, + "src": "10139:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15353,21 +16995,293 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8318:28:0", + "src": "10124:28:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 387, + "id": 444, "indexExpression": { "argumentTypes": null, - "id": 385, + "id": 443, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "8347:8:0", + "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" @@ -15378,7 +17292,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8318:38:0", + "src": "10385:38:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15389,14 +17303,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 388, + "id": 462, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8359:1:0", + "src": "10426:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15404,15 +17318,15 @@ }, "value": "0" }, - "src": "8318:42:0", + "src": "10385:42:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 390, + "id": 464, "nodeType": "ExpressionStatement", - "src": "8318:42:0" + "src": "10385:42:0" } ] } @@ -15420,30 +17334,30 @@ ] } }, - "id": 405, + "id": 479, "nodeType": "IfStatement", - "src": "6932:1616:0", + "src": "7715:2900:0", "trueBody": { - "id": 351, + "id": 423, "nodeType": "Block", - "src": "6944:737:0", + "src": "7727:2031:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 333, + "id": 359, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 329, + "id": 353, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "7061:12:0", + "referencedDeclaration": 316, + "src": "7844:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15456,39 +17370,77 @@ "arguments": [ { "argumentTypes": null, - "id": 331, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "7084:1:0", + "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_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 330, + "id": 354, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7076:7:0", + "src": "7859:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 332, + "id": 358, "isConstant": false, "isLValue": false, "isPure": false, @@ -15496,32 +17448,808 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7076:10:0", + "src": "7859:19:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "src": "7061:25:0", + "src": "7844:34:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 334, + "id": 360, "nodeType": "ExpressionStatement", - "src": "7061:25:0" + "src": "7844:34:0" }, { - "assignments": [], + "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": 336, + "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": 428, - "src": "7104:30:0", + "scope": 423, + "src": "9169:30:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -15529,10 +18257,10 @@ "typeString": "bytes" }, "typeName": { - "id": 335, + "id": 406, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7104:5:0", + "src": "9169:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -15542,394 +18270,261 @@ "visibility": "internal" } ], - "id": 337, + "id": 408, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "7104:30:0" + "src": "9169:30:0" }, { "externalReferences": [ { "contractSignature": { - "declaration": 336, + "declaration": 407, "isOffset": false, "isSlot": false, - "src": "7394:17:0", + "src": "9459:17:0", "valueSize": 1 } }, { "signatures": { - "declaration": 268, + "declaration": 293, "isOffset": false, "isSlot": false, - "src": "7423:10:0", + "src": "9488:10:0", "valueSize": 1 } }, { "s": { - "declaration": 301, + "declaration": 325, "isOffset": false, "isSlot": false, - "src": "7435:1:0", + "src": "9500:1:0", "valueSize": 1 } } ], - "id": 338, + "id": 409, "nodeType": "InlineAssembly", "operations": "{\n contractSignature := add(add(signatures, s), 0x20)\n}", - "src": "7224:257:0" + "src": "9289:262:0" }, { - "condition": { + "expression": { "argumentTypes": null, - "id": 346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7483:76:0", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 343, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "7535:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" }, - { - "argumentTypes": null, - "id": 344, - "name": "contractSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "7541: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": { + "id": 419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 340, - "name": "currentOwner", + "id": 415, + "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "7504:12:0", + "referencedDeclaration": 291, + "src": "9603:4:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "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_address", - "typeString": "address" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } ], - "id": 339, - "name": "ISignatureValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "7484:19:0", + "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_type$_t_contract$_ISignatureValidator_$1803_$", - "typeString": "type(contract ISignatureValidator)" + "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": 341, + "id": 417, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7484:33:0", + "src": "9552:75:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISignatureValidator_$1803", - "typeString": "contract ISignatureValidator" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } }, - "id": 342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isValidSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "7484:50:0", + "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_function_external_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes memory,bytes memory) external returns (bool)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7484:75:0", + { + "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_bool", - "typeString": "bool" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 350, - "nodeType": "IfStatement", - "src": "7479:135:0", - "trueBody": { - "id": 349, - "nodeType": "Block", - "src": "7561:53:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7590:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 274, - "id": 348, - "nodeType": "Return", - "src": "7583:12:0" - } - ] - } - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 406, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8565:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 407, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "8581:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8565:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 409, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "8594:6:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 411, - "indexExpression": { - "argumentTypes": null, - "id": 410, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8601:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8594:20:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8618:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8594:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8565:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 418, - "nodeType": "IfStatement", - "src": "8561:105:0", - "trueBody": { - "id": 417, - "nodeType": "Block", - "src": "8621:45:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 415, + "id": 421, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "bool", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "8646:5:0", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "9544:146:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "functionReturnParameters": 274, - "id": 416, - "nodeType": "Return", - "src": "8639:12:0" + "id": 422, + "nodeType": "ExpressionStatement", + "src": "9544:146:0" } ] } @@ -15937,19 +18532,328 @@ { "expression": { "argumentTypes": null, - "id": 421, + "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": 419, + "id": 499, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "8679:9:0", + "referencedDeclaration": 310, + "src": "10775:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15959,26 +18863,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 420, + "id": 500, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8691:12:0", + "referencedDeclaration": 316, + "src": "10787:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "8679:24:0", + "src": "10775:24:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 422, + "id": 502, "nodeType": "ExpressionStatement", - "src": "8679:24:0" + "src": "10775:24:0" } ] }, @@ -15988,19 +18892,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 312, + "id": 336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 310, + "id": 334, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6786:1:0", + "referencedDeclaration": 328, + "src": "7569:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16010,40 +18914,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 311, + "id": 335, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "6790:9:0", + "referencedDeclaration": 1360, + "src": "7573:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6786:13:0", + "src": "7569:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 424, + "id": 504, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 308, + "id": 332, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 306, + "id": 330, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6779:1:0", + "referencedDeclaration": 328, + "src": "7562:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16054,14 +18958,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 307, + "id": 331, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6783:1:0", + "src": "7566:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -16069,20 +18973,20 @@ }, "value": "0" }, - "src": "6779:5:0", + "src": "7562:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 309, + "id": 333, "nodeType": "ExpressionStatement", - "src": "6779:5:0" + "src": "7562:5:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 314, + "id": 338, "isConstant": false, "isLValue": false, "isPure": false, @@ -16090,15 +18994,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6801:3:0", + "src": "7584:3:0", "subExpression": { "argumentTypes": null, - "id": 313, + "id": 337, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6801:1:0", + "referencedDeclaration": 328, + "src": "7584:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16109,58 +19013,33 @@ "typeString": "uint256" } }, - "id": 315, + "id": 339, "nodeType": "ExpressionStatement", - "src": "6801:3:0" + "src": "7584:3:0" }, "nodeType": "ForStatement", - "src": "6774:1940:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8730:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 274, - "id": 426, - "nodeType": "Return", - "src": "8723:11:0" + "src": "7557:3253:0" } ] }, - "documentation": "@dev Should return whether the signature provided is valid for the provided data, hash\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@return a bool upon valid or invalid signature with corresponding _data", - "id": 428, + "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, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "checkSignatures", "nodeType": "FunctionDefinition", "parameters": { - "id": 271, + "id": 296, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 264, + "id": 289, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6305:16:0", + "scope": 506, + "src": "7097:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16168,10 +19047,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 263, + "id": 288, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6305:7:0", + "src": "7097:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -16182,22 +19061,22 @@ }, { "constant": false, - "id": 266, + "id": 291, "name": "data", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6323:10:0", + "scope": 506, + "src": "7115:17:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 265, + "id": 290, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6323:5:0", + "src": "7115:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -16208,22 +19087,22 @@ }, { "constant": false, - "id": 268, + "id": 293, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6335:16:0", + "scope": 506, + "src": "7134:23:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 267, + "id": 292, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6335:5:0", + "src": "7134:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -16234,11 +19113,11 @@ }, { "constant": false, - "id": 270, + "id": 295, "name": "consumeHash", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6353:16:0", + "scope": 506, + "src": "7159:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16246,10 +19125,10 @@ "typeString": "bool" }, "typeName": { - "id": 269, + "id": 294, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6353:4:0", + "src": "7159:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16259,66 +19138,38 @@ "visibility": "internal" } ], - "src": "6304:66:0" + "src": "7096:80:0" }, - "payable": false, "returnParameters": { - "id": 274, + "id": 297, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 273, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6405:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 272, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6405:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6404:6:0" + "parameters": [], + "src": "7198:0:0" }, - "scope": 692, - "src": "6280:2461:0", + "scope": 773, + "src": "7072:3744:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 475, + "id": 553, "nodeType": "Block", - "src": "9804:420:0", + "src": "11890:420:0", "statements": [ { "assignments": [ - 444 + 522 ], "declarations": [ { "constant": false, - "id": 444, + "id": 522, "name": "startGas", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9814:16:0", + "scope": 553, + "src": "11900:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16326,10 +19177,10 @@ "typeString": "uint256" }, "typeName": { - "id": 443, + "id": 521, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9814:7:0", + "src": "11900:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16339,24 +19190,24 @@ "visibility": "internal" } ], - "id": 447, + "id": 525, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 445, + "id": 523, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "9833:7:0", + "referencedDeclaration": 4359, + "src": "11919:7:0", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 446, + "id": 524, "isConstant": false, "isLValue": false, "isPure": false, @@ -16364,14 +19215,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9833:9:0", + "src": "11919:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "9814:28:0" + "src": "11900:28:0" }, { "expression": { @@ -16382,12 +19233,12 @@ "arguments": [ { "argumentTypes": null, - "id": 450, + "id": 528, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "10004:2:0", + "referencedDeclaration": 508, + "src": "12090:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16395,12 +19246,12 @@ }, { "argumentTypes": null, - "id": 451, + "id": 529, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "10008:5:0", + "referencedDeclaration": 510, + "src": "12094:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16408,27 +19259,27 @@ }, { "argumentTypes": null, - "id": 452, + "id": 530, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "10015:4:0", + "referencedDeclaration": 512, + "src": "12101:4:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } }, { "argumentTypes": null, - "id": 453, + "id": 531, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 436, - "src": "10021:9:0", + "referencedDeclaration": 514, + "src": "12107:9:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -16437,18 +19288,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 454, + "id": 532, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "10032:7:0", + "referencedDeclaration": 4359, + "src": "12118:7:0", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 455, + "id": 533, "isConstant": false, "isLValue": false, "isPure": false, @@ -16456,7 +19307,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10032:9:0", + "src": "12118:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16474,11 +19325,11 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -16486,18 +19337,18 @@ "typeString": "uint256" } ], - "id": 449, + "id": 527, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "9996:7:0", + "referencedDeclaration": 937, + "src": "12082:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", + "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": 456, + "id": 534, "isConstant": false, "isLValue": false, "isPure": false, @@ -16505,7 +19356,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9996:46:0", + "src": "12082:46:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16519,21 +19370,21 @@ "typeString": "bool" } ], - "id": 448, + "id": 526, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4018, - "src": "9988:7:0", + "referencedDeclaration": 4369, + "src": "12074:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 457, + "id": 535, "isConstant": false, "isLValue": false, "isPure": false, @@ -16541,28 +19392,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9988:55:0", + "src": "12074:55:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 458, + "id": 536, "nodeType": "ExpressionStatement", - "src": "9988:55:0" + "src": "12074:55:0" }, { "assignments": [ - 460 + 538 ], "declarations": [ { "constant": false, - "id": 460, + "id": 538, "name": "requiredGas", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "10053:19:0", + "scope": 553, + "src": "12139:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16570,10 +19421,10 @@ "typeString": "uint256" }, "typeName": { - "id": 459, + "id": 537, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10053:7:0", + "src": "12139:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16583,26 +19434,26 @@ "visibility": "internal" } ], - "id": 465, + "id": 543, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 464, + "id": 542, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 461, + "id": 539, "name": "startGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 444, - "src": "10075:8:0", + "referencedDeclaration": 522, + "src": "12161:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16615,18 +19466,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 462, + "id": 540, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "10086:7:0", + "referencedDeclaration": 4359, + "src": "12172:7:0", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 463, + "id": 541, "isConstant": false, "isLValue": false, "isPure": false, @@ -16634,20 +19485,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10086:9:0", + "src": "12172:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10075:20:0", + "src": "12161:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "10053:42:0" + "src": "12139:42:0" }, { "expression": { @@ -16661,12 +19512,12 @@ "arguments": [ { "argumentTypes": null, - "id": 470, + "id": 548, "name": "requiredGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 460, - "src": "10203:11:0", + "referencedDeclaration": 538, + "src": "12289:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16682,18 +19533,18 @@ ], "expression": { "argumentTypes": null, - "id": 468, + "id": 546, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "10186:3:0", + "referencedDeclaration": 4353, + "src": "12272:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 469, + "id": 547, "isConstant": false, "isLValue": false, "isPure": true, @@ -16701,13 +19552,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10186:16:0", + "src": "12272:16:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 471, + "id": 549, "isConstant": false, "isLValue": false, "isPure": false, @@ -16715,7 +19566,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10186:29:0", + "src": "12272:29:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -16729,20 +19580,20 @@ "typeString": "bytes memory" } ], - "id": 467, + "id": 545, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10179:6:0", + "src": "12265:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)" }, "typeName": "string" }, - "id": 472, + "id": 550, "isConstant": false, "isLValue": false, "isPure": false, @@ -16750,9 +19601,9 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10179:37:0", + "src": "12265:37:0", "typeDescriptions": { - "typeIdentifier": "t_string_memory", + "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } @@ -16760,25 +19611,25 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_string_memory", + "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], - "id": 466, + "id": 544, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4021, - "src": "10172:6:0", + "referencedDeclaration": 4372, + "src": "12258:6:0", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 473, + "id": 551, "isConstant": false, "isLValue": false, "isPure": false, @@ -16786,57 +19637,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10172:45:0", + "src": "12258:45:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 474, + "id": 552, "nodeType": "ExpressionStatement", - "src": "10172:45:0" + "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": 476, + "id": 554, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 439, + "id": 517, "modifierName": { "argumentTypes": null, - "id": 438, + "id": 516, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "9763:10:0", + "referencedDeclaration": 1880, + "src": "11849:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "9763:10:0" + "src": "11849:10:0" } ], "name": "requiredTxGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 437, + "id": 515, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 430, + "id": 508, "name": "to", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9675:10:0", + "scope": 554, + "src": "11750:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16844,10 +19694,11 @@ "typeString": "address" }, "typeName": { - "id": 429, + "id": 507, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9675:7:0", + "src": "11750:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16858,11 +19709,11 @@ }, { "constant": false, - "id": 432, + "id": 510, "name": "value", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9687:13:0", + "scope": 554, + "src": "11762:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16870,10 +19721,10 @@ "typeString": "uint256" }, "typeName": { - "id": 431, + "id": 509, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9687:7:0", + "src": "11762:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16884,22 +19735,22 @@ }, { "constant": false, - "id": 434, + "id": 512, "name": "data", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9702:10:0", + "scope": 554, + "src": "11777:19:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 433, + "id": 511, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9702:5:0", + "src": "11777:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -16910,26 +19761,26 @@ }, { "constant": false, - "id": 436, + "id": 514, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9714:24:0", + "scope": 554, + "src": "11798:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 435, + "id": 513, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "9714:14:0", + "referencedDeclaration": 1802, + "src": "11798:14:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -16937,20 +19788,19 @@ "visibility": "internal" } ], - "src": "9674:65:0" + "src": "11749:74:0" }, - "payable": false, "returnParameters": { - "id": 442, + "id": 520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 441, + "id": 519, "name": "", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9791:7:0", + "scope": 554, + "src": "11877:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16958,10 +19808,10 @@ "typeString": "uint256" }, "typeName": { - "id": 440, + "id": 518, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9791:7:0", + "src": "11877:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16971,19 +19821,19 @@ "visibility": "internal" } ], - "src": "9790:9:0" + "src": "11876:9:0" }, - "scope": 692, - "src": "9652:572:0", + "scope": 773, + "src": "11727:583:0", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 500, + "id": 580, "nodeType": "Block", - "src": "10531:138:0", + "src": "12619:147:0", "statements": [ { "expression": { @@ -16995,7 +19845,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 487, + "id": 567, "isConstant": false, "isLValue": false, "isPure": false, @@ -17004,34 +19854,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 482, + "id": 560, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "10549:6:0", + "referencedDeclaration": 1356, + "src": "12637:6:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 485, + "id": 563, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 483, + "id": 561, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "10556:3:0", + "referencedDeclaration": 4366, + "src": "12644:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 484, + "id": 562, "isConstant": false, "isLValue": false, "isPure": false, @@ -17039,10 +19889,10 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10556:10:0", + "src": "12644:10:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "isConstant": false, @@ -17050,7 +19900,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10549:18:0", + "src": "12637:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17060,23 +19910,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 486, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "10571:1:0", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "12659:10:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "10549:23:0", + "src": "12637:32:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17085,14 +19973,14 @@ { "argumentTypes": null, "hexValue": "4f6e6c79206f776e6572732063616e20617070726f766520612068617368", - "id": 488, + "id": 568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10574:32:0", + "src": "12671:32:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_60f21058f4a7689ef29853b3c9c17c9bf69856a949794649bb68878f00552475", @@ -17112,21 +20000,21 @@ "typeString": "literal_string \"Only owners can approve a hash\"" } ], - "id": 481, + "id": 559, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "10541:7:0", + "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": 489, + "id": 569, "isConstant": false, "isLValue": false, "isPure": false, @@ -17134,20 +20022,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10541:66:0", + "src": "12629:75:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 490, + "id": 570, "nodeType": "ExpressionStatement", - "src": "10541:66:0" + "src": "12629:75:0" }, { "expression": { "argumentTypes": null, - "id": 498, + "id": 578, "isConstant": false, "isLValue": false, "isPure": false, @@ -17158,34 +20046,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 491, + "id": 571, "name": "approvedHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "10617:14:0", + "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": 495, + "id": 575, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 492, + "id": 572, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "10632:3:0", + "referencedDeclaration": 4366, + "src": "12729:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 493, + "id": 573, "isConstant": false, "isLValue": false, "isPure": false, @@ -17193,10 +20081,10 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10632:10:0", + "src": "12729:10:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "isConstant": false, @@ -17204,21 +20092,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10617:26:0", + "src": "12714:26:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 496, + "id": 576, "indexExpression": { "argumentTypes": null, - "id": 494, + "id": 574, "name": "hashToApprove", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "10644:13:0", + "referencedDeclaration": 556, + "src": "12741:13:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17229,7 +20117,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "10617:41:0", + "src": "12714:41:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17240,14 +20128,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 497, + "id": 577, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10661:1:0", + "src": "12758:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -17255,37 +20143,36 @@ }, "value": "1" }, - "src": "10617:45:0", + "src": "12714:45:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 499, + "id": 579, "nodeType": "ExpressionStatement", - "src": "10617:45:0" + "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": 501, + "id": 581, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "approveHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 479, + "id": 557, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 478, + "id": 556, "name": "hashToApprove", "nodeType": "VariableDeclaration", - "scope": 501, - "src": "10489:21:0", + "scope": 581, + "src": "12575:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17293,10 +20180,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 477, + "id": 555, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10489:7:0", + "src": "12575:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17306,31 +20193,30 @@ "visibility": "internal" } ], - "src": "10488:23:0" + "src": "12574:23:0" }, - "payable": false, "returnParameters": { - "id": 480, + "id": 558, "nodeType": "ParameterList", "parameters": [], - "src": "10531:0:0" + "src": "12619:0:0" }, - "scope": 692, - "src": "10468:201:0", + "scope": 773, + "src": "12554:212:0", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 516, + "id": 596, "nodeType": "Block", - "src": "10903:58:0", + "src": "13013:58:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 514, + "id": 594, "isConstant": false, "isLValue": false, "isPure": false, @@ -17339,54 +20225,54 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 508, + "id": 588, "name": "signedMessages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "10913:14:0", + "referencedDeclaration": 47, + "src": "13023:14:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 512, + "id": 592, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 510, + "id": 590, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "10943:5:0", + "referencedDeclaration": 583, + "src": "13053:5:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } ], - "id": 509, + "id": 589, "name": "getMessageHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "10928:14:0", + "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": 511, + "id": 591, "isConstant": false, "isLValue": false, "isPure": false, @@ -17394,7 +20280,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10928:21:0", + "src": "13038:21:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17405,7 +20291,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "10913:37:0", + "src": "13023:37:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17416,14 +20302,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 513, + "id": 593, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10953:1:0", + "src": "13063:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -17431,68 +20317,67 @@ }, "value": "1" }, - "src": "10913:41:0", + "src": "13023:41:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 515, + "id": 595, "nodeType": "ExpressionStatement", - "src": "10913:41:0" + "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": 517, + "id": 597, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 506, + "id": 586, "modifierName": { "argumentTypes": null, - "id": 505, + "id": 585, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "10888:10:0", + "referencedDeclaration": 1880, + "src": "12998:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "10888:10:0" + "src": "12998:10:0" } ], "name": "signMessage", "nodeType": "FunctionDefinition", "parameters": { - "id": 504, + "id": 584, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 503, + "id": 583, "name": "_data", "nodeType": "VariableDeclaration", - "scope": 517, - "src": "10852:11:0", + "scope": 597, + "src": "12950:20:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 502, + "id": 582, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10852:5:0", + "src": "12950:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -17502,39 +20387,38 @@ "visibility": "internal" } ], - "src": "10851:13:0" + "src": "12949:22:0" }, - "payable": false, "returnParameters": { - "id": 507, + "id": 587, "nodeType": "ParameterList", "parameters": [], - "src": "10903:0:0" + "src": "13013:0:0" }, - "scope": 692, - "src": "10831:130:0", + "scope": 773, + "src": "12929:142:0", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 556, + "id": 637, "nodeType": "Block", - "src": "11400:340:0", + "src": "13525:386:0", "statements": [ { "assignments": [ - 527 + 607 ], "declarations": [ { "constant": false, - "id": 527, + "id": 607, "name": "messageHash", "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11410:19:0", + "scope": 637, + "src": "13535:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17542,10 +20426,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 526, + "id": 606, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "11410:7:0", + "src": "13535:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17555,43 +20439,43 @@ "visibility": "internal" } ], - "id": 531, + "id": 611, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 529, + "id": 609, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11447:5:0", + "referencedDeclaration": 599, + "src": "13572:5:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } ], - "id": 528, + "id": 608, "name": "getMessageHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "11432:14:0", + "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": 530, + "id": 610, "isConstant": false, "isLValue": false, "isPure": false, @@ -17599,14 +20483,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11432:21:0", + "src": "13557:21:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "11410:43:0" + "src": "13535:43:0" }, { "condition": { @@ -17615,7 +20499,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 535, + "id": 615, "isConstant": false, "isLValue": false, "isPure": false, @@ -17624,18 +20508,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 532, + "id": 612, "name": "_signature", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 521, - "src": "11467:10:0", + "referencedDeclaration": 601, + "src": "13592:10:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } }, - "id": 533, + "id": 613, "isConstant": false, "isLValue": false, "isPure": false, @@ -17643,7 +20527,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11467:17:0", + "src": "13592:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17654,14 +20538,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 534, + "id": 614, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11488:1:0", + "src": "13613:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -17669,310 +20553,333 @@ }, "value": "0" }, - "src": "11467:22:0", + "src": "13592:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 554, + "id": 633, "nodeType": "Block", - "src": "11564:170:0", + "src": "13709:160:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 545, - "name": "isValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "11659:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 547, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 527, - "src": "11685:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 548, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11698:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 549, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 521, - "src": "11705:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11717:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 546, - "name": "checkSignatures", + "arguments": [ + { + "argumentTypes": null, + "id": 627, + "name": "messageHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "11669:15:0", + "referencedDeclaration": 607, + "src": "13820:11:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory,bytes memory,bool) returns (bool)" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11669:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11659:64:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 553, - "nodeType": "ExpressionStatement", - "src": "11659:64:0" - } - ] - }, - "id": 555, - "nodeType": "IfStatement", - "src": "11463:271:0", - "trueBody": { - "id": 544, - "nodeType": "Block", - "src": "11491:67:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 536, - "name": "isValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "11505:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 537, - "name": "signedMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "11515:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 539, - "indexExpression": { - "argumentTypes": null, - "id": 538, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 527, - "src": "11530:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11515:27:0", + "id": 628, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "13833:5:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + { "argumentTypes": null, - "hexValue": "30", - "id": 540, + "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": "number", + "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "11546:1:0", + "src": "13852:5:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "value": "0" - }, - "src": "11515:32:0", + "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_bool", - "typeString": "bool" + "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)" } }, - "src": "11505:42:0", + "id": 631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13804:54:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 543, + "id": 632, "nodeType": "ExpressionStatement", - "src": "11505:42:0" + "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": 557, + "id": 638, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "isValidSignature", "nodeType": "FunctionDefinition", "parameters": { - "id": 522, + "id": 602, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 519, + "id": 599, "name": "_data", "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11319:11:0", + "scope": 638, + "src": "13430:20:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 518, + "id": 598, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11319:5:0", + "src": "13430:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -17983,22 +20890,22 @@ }, { "constant": false, - "id": 521, + "id": 601, "name": "_signature", "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11332:16:0", + "scope": 638, + "src": "13452:25:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 520, + "id": 600, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11332:5:0", + "src": "13452:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -18008,66 +20915,65 @@ "visibility": "internal" } ], - "src": "11318:31:0" + "src": "13429:49:0" }, - "payable": false, "returnParameters": { - "id": 525, + "id": 605, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 524, - "name": "isValid", + "id": 604, + "name": "", "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11382:12:0", + "scope": 638, + "src": "13513:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" }, "typeName": { - "id": 523, - "name": "bool", + "id": 603, + "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "11382:4:0", + "src": "13513:6:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], - "src": "11381:14:0" + "src": "13512:8:0" }, - "scope": 692, - "src": "11293:447:0", + "scope": 773, + "src": "13404:507:0", "stateMutability": "nonpayable", - "superFunction": 1802, - "visibility": "public" + "superFunction": 2079, + "visibility": "external" }, { "body": { - "id": 590, + "id": 671, "nodeType": "Block", - "src": "12009:246:0", + "src": "14187:249:0", "statements": [ { "assignments": [ - 565 + 646 ], "declarations": [ { "constant": false, - "id": 565, + "id": 646, "name": "safeMessageHash", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "12019:23:0", + "scope": 671, + "src": "14197:23:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18075,10 +20981,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 564, + "id": 645, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12019:7:0", + "src": "14197:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18088,7 +20994,7 @@ "visibility": "internal" } ], - "id": 575, + "id": 656, "initialValue": { "argumentTypes": null, "arguments": [ @@ -18097,12 +21003,12 @@ "arguments": [ { "argumentTypes": null, - "id": 569, + "id": 650, "name": "SAFE_MSG_TYPEHASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "12079:17:0", + "referencedDeclaration": 35, + "src": "14257:17:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18113,12 +21019,12 @@ "arguments": [ { "argumentTypes": null, - "id": 571, + "id": 652, "name": "message", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 559, - "src": "12108:7:0", + "referencedDeclaration": 640, + "src": "14286:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -18132,18 +21038,18 @@ "typeString": "bytes memory" } ], - "id": 570, + "id": 651, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12098:9:0", + "referencedDeclaration": 4360, + "src": "14276:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 572, + "id": 653, "isConstant": false, "isLValue": false, "isPure": false, @@ -18151,7 +21057,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12098:18:0", + "src": "14276:18:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18171,18 +21077,18 @@ ], "expression": { "argumentTypes": null, - "id": 567, + "id": 648, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12068:3:0", + "referencedDeclaration": 4353, + "src": "14246:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 568, + "id": 649, "isConstant": false, "isLValue": false, "isPure": true, @@ -18190,13 +21096,13 @@ "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12068:10:0", + "src": "14246:10:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 573, + "id": 654, "isConstant": false, "isLValue": false, "isPure": false, @@ -18204,7 +21110,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12068:49:0", + "src": "14246:49:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -18218,18 +21124,18 @@ "typeString": "bytes memory" } ], - "id": 566, + "id": 647, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12045:9:0", + "referencedDeclaration": 4360, + "src": "14223:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 574, + "id": 655, "isConstant": false, "isLValue": false, "isPure": false, @@ -18237,14 +21143,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12045:82:0", + "src": "14223:82:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "12019:108:0" + "src": "14197:108:0" }, { "expression": { @@ -18259,14 +21165,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 580, + "id": 661, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12189:4:0", + "src": "14367:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -18282,20 +21188,20 @@ "typeString": "int_const 25" } ], - "id": 579, + "id": 660, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12184:4:0", + "src": "14362:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 581, + "id": 662, "isConstant": false, "isLValue": false, "isPure": true, @@ -18303,7 +21209,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12184:10:0", + "src": "14362:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -18314,21 +21220,21 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "31", - "id": 583, + "hexValue": "30783031", + "id": 664, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12201:1:0", + "src": "14379:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, - "value": "1" + "value": "0x01" } ], "expression": { @@ -18338,20 +21244,20 @@ "typeString": "int_const 1" } ], - "id": 582, + "id": 663, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12196:4:0", + "src": "14374:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 584, + "id": 665, "isConstant": false, "isLValue": false, "isPure": true, @@ -18359,7 +21265,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12196:7:0", + "src": "14374:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -18367,12 +21273,12 @@ }, { "argumentTypes": null, - "id": 585, + "id": 666, "name": "domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "12205:15:0", + "referencedDeclaration": 43, + "src": "14386:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18380,12 +21286,12 @@ }, { "argumentTypes": null, - "id": 586, + "id": 667, "name": "safeMessageHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 565, - "src": "12222:15:0", + "referencedDeclaration": 646, + "src": "14403:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18413,18 +21319,18 @@ ], "expression": { "argumentTypes": null, - "id": 577, + "id": 658, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12167:3:0", + "referencedDeclaration": 4353, + "src": "14345:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 578, + "id": 659, "isConstant": false, "isLValue": false, "isPure": true, @@ -18432,13 +21338,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12167:16:0", + "src": "14345:16:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 587, + "id": 668, "isConstant": false, "isLValue": false, "isPure": false, @@ -18446,7 +21352,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12167:71:0", + "src": "14345:74:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -18460,18 +21366,18 @@ "typeString": "bytes memory" } ], - "id": 576, + "id": 657, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12144:9:0", + "referencedDeclaration": 4360, + "src": "14322:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 588, + "id": 669, "isConstant": false, "isLValue": false, "isPure": false, @@ -18479,49 +21385,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12144:104:0", + "src": "14322:107:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 563, - "id": 589, + "functionReturnParameters": 644, + "id": 670, "nodeType": "Return", - "src": "12137:111:0" + "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": 591, + "id": 672, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "getMessageHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 560, + "id": 641, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 559, + "id": 640, "name": "message", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "11931:13:0", + "scope": 672, + "src": "14102:20:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 558, + "id": 639, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11931:5:0", + "src": "14102:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -18531,20 +21436,19 @@ "visibility": "internal" } ], - "src": "11921:29:0" + "src": "14092:36:0" }, - "payable": false, "returnParameters": { - "id": 563, + "id": 644, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 562, + "id": 643, "name": "", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "11996:7:0", + "scope": 672, + "src": "14174:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18552,10 +21456,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 561, + "id": 642, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "11996:7:0", + "src": "14174:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18565,32 +21469,32 @@ "visibility": "internal" } ], - "src": "11995:9:0" + "src": "14173:9:0" }, - "scope": 692, - "src": "11898:357:0", + "scope": 773, + "src": "14069:367:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 649, + "id": 730, "nodeType": "Block", - "src": "13318:285:0", + "src": "15519:288:0", "statements": [ { "assignments": [ - 617 + 698 ], "declarations": [ { "constant": false, - "id": 617, + "id": 698, "name": "safeTxHash", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13328:18:0", + "scope": 730, + "src": "15529:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18598,10 +21502,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 616, + "id": 697, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13328:7:0", + "src": "15529:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18611,7 +21515,7 @@ "visibility": "internal" } ], - "id": 636, + "id": 717, "initialValue": { "argumentTypes": null, "arguments": [ @@ -18620,12 +21524,12 @@ "arguments": [ { "argumentTypes": null, - "id": 621, + "id": 702, "name": "SAFE_TX_TYPEHASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "13383:16:0", + "referencedDeclaration": 32, + "src": "15584:16:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18633,12 +21537,12 @@ }, { "argumentTypes": null, - "id": 622, + "id": 703, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "13401:2:0", + "referencedDeclaration": 674, + "src": "15602:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18646,12 +21550,12 @@ }, { "argumentTypes": null, - "id": 623, + "id": 704, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, - "src": "13405:5:0", + "referencedDeclaration": 676, + "src": "15606:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18662,12 +21566,12 @@ "arguments": [ { "argumentTypes": null, - "id": 625, + "id": 706, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "13422:4:0", + "referencedDeclaration": 678, + "src": "15623:4:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -18681,18 +21585,18 @@ "typeString": "bytes memory" } ], - "id": 624, + "id": 705, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "13412:9:0", + "referencedDeclaration": 4360, + "src": "15613:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 626, + "id": 707, "isConstant": false, "isLValue": false, "isPure": false, @@ -18700,7 +21604,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13412:15:0", + "src": "15613:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18708,25 +21612,25 @@ }, { "argumentTypes": null, - "id": 627, + "id": 708, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "13429:9:0", + "referencedDeclaration": 680, + "src": "15630:9:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 628, + "id": 709, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "13440:9:0", + "referencedDeclaration": 682, + "src": "15641:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18734,12 +21638,12 @@ }, { "argumentTypes": null, - "id": 629, - "name": "dataGas", + "id": 710, + "name": "baseGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 603, - "src": "13451:7:0", + "referencedDeclaration": 684, + "src": "15652:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18747,12 +21651,12 @@ }, { "argumentTypes": null, - "id": 630, + "id": 711, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "13460:8:0", + "referencedDeclaration": 686, + "src": "15661:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18760,12 +21664,12 @@ }, { "argumentTypes": null, - "id": 631, + "id": 712, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 607, - "src": "13470:8:0", + "referencedDeclaration": 688, + "src": "15671:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18773,12 +21677,12 @@ }, { "argumentTypes": null, - "id": 632, + "id": 713, "name": "refundReceiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "13480:14:0", + "referencedDeclaration": 690, + "src": "15681:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18786,12 +21690,12 @@ }, { "argumentTypes": null, - "id": 633, + "id": 714, "name": "_nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 611, - "src": "13496:6:0", + "referencedDeclaration": 692, + "src": "15697:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18817,7 +21721,7 @@ "typeString": "bytes32" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -18847,18 +21751,18 @@ ], "expression": { "argumentTypes": null, - "id": 619, + "id": 700, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "13372:3:0", + "referencedDeclaration": 4353, + "src": "15573:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 620, + "id": 701, "isConstant": false, "isLValue": false, "isPure": true, @@ -18866,13 +21770,13 @@ "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "13372:10:0", + "src": "15573:10:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 634, + "id": 715, "isConstant": false, "isLValue": false, "isPure": false, @@ -18880,7 +21784,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13372:131:0", + "src": "15573:131:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -18894,18 +21798,18 @@ "typeString": "bytes memory" } ], - "id": 618, + "id": 699, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "13349:9:0", + "referencedDeclaration": 4360, + "src": "15550:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 635, + "id": 716, "isConstant": false, "isLValue": false, "isPure": false, @@ -18913,14 +21817,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13349:164:0", + "src": "15550:164:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "13328:185:0" + "src": "15529:185:0" }, { "expression": { @@ -18932,14 +21836,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 640, + "id": 721, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13552:4:0", + "src": "15753:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -18955,20 +21859,20 @@ "typeString": "int_const 25" } ], - "id": 639, + "id": 720, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13547:4:0", + "src": "15748:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 641, + "id": 722, "isConstant": false, "isLValue": false, "isPure": true, @@ -18976,7 +21880,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13547:10:0", + "src": "15748:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -18987,21 +21891,21 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "31", - "id": 643, + "hexValue": "30783031", + "id": 724, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13564:1:0", + "src": "15765:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, - "value": "1" + "value": "0x01" } ], "expression": { @@ -19011,20 +21915,20 @@ "typeString": "int_const 1" } ], - "id": 642, + "id": 723, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13559:4:0", + "src": "15760:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 644, + "id": 725, "isConstant": false, "isLValue": false, "isPure": true, @@ -19032,7 +21936,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13559:7:0", + "src": "15760:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -19040,12 +21944,12 @@ }, { "argumentTypes": null, - "id": 645, + "id": 726, "name": "domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "13568:15:0", + "referencedDeclaration": 43, + "src": "15772:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -19053,12 +21957,12 @@ }, { "argumentTypes": null, - "id": 646, + "id": 727, "name": "safeTxHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 617, - "src": "13585:10:0", + "referencedDeclaration": 698, + "src": "15789:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -19086,18 +21990,18 @@ ], "expression": { "argumentTypes": null, - "id": 637, + "id": 718, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "13530:3:0", + "referencedDeclaration": 4353, + "src": "15731:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 638, + "id": 719, "isConstant": false, "isLValue": false, "isPure": true, @@ -19105,13 +22009,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "13530:16:0", + "src": "15731:16:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 647, + "id": 728, "isConstant": false, "isLValue": false, "isPure": false, @@ -19119,38 +22023,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13530:66:0", + "src": "15731:69:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 615, - "id": 648, + "functionReturnParameters": 696, + "id": 729, "nodeType": "Return", - "src": "13523:73:0" + "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 dataGas 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": 650, + "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, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "encodeTransactionData", "nodeType": "FunctionDefinition", "parameters": { - "id": 612, + "id": 693, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 593, + "id": 674, "name": "to", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13008:10:0", + "scope": 731, + "src": "15189:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19158,10 +22061,11 @@ "typeString": "address" }, "typeName": { - "id": 592, + "id": 673, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13008:7:0", + "src": "15189:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19172,11 +22076,11 @@ }, { "constant": false, - "id": 595, + "id": 676, "name": "value", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13028:13:0", + "scope": 731, + "src": "15210:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19184,10 +22088,10 @@ "typeString": "uint256" }, "typeName": { - "id": 594, + "id": 675, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13028:7:0", + "src": "15210:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19198,22 +22102,22 @@ }, { "constant": false, - "id": 597, + "id": 678, "name": "data", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13051:10:0", + "scope": 731, + "src": "15234:17:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 596, + "id": 677, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "13051:5:0", + "src": "15234:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -19224,26 +22128,26 @@ }, { "constant": false, - "id": 599, + "id": 680, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13071:24:0", + "scope": 731, + "src": "15262:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 598, + "id": 679, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "13071:14:0", + "referencedDeclaration": 1802, + "src": "15262:14:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -19252,11 +22156,11 @@ }, { "constant": false, - "id": 601, + "id": 682, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13105:17:0", + "scope": 731, + "src": "15297:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19264,10 +22168,10 @@ "typeString": "uint256" }, "typeName": { - "id": 600, + "id": 681, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13105:7:0", + "src": "15297:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19278,11 +22182,11 @@ }, { "constant": false, - "id": 603, - "name": "dataGas", + "id": 684, + "name": "baseGas", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13132:15:0", + "scope": 731, + "src": "15325:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19290,10 +22194,10 @@ "typeString": "uint256" }, "typeName": { - "id": 602, + "id": 683, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13132:7:0", + "src": "15325:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19304,11 +22208,11 @@ }, { "constant": false, - "id": 605, + "id": 686, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13157:16:0", + "scope": 731, + "src": "15351:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19316,10 +22220,10 @@ "typeString": "uint256" }, "typeName": { - "id": 604, + "id": 685, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13157:7:0", + "src": "15351:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19330,11 +22234,11 @@ }, { "constant": false, - "id": 607, + "id": 688, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13183:16:0", + "scope": 731, + "src": "15377:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19342,10 +22246,11 @@ "typeString": "address" }, "typeName": { - "id": 606, + "id": 687, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13183:7:0", + "src": "15377:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19356,11 +22261,11 @@ }, { "constant": false, - "id": 609, + "id": 690, "name": "refundReceiver", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13209:22:0", + "scope": 731, + "src": "15403:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19368,10 +22273,11 @@ "typeString": "address" }, "typeName": { - "id": 608, + "id": 689, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13209:7:0", + "src": "15403:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19382,11 +22288,11 @@ }, { "constant": false, - "id": 611, + "id": 692, "name": "_nonce", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13241:14:0", + "scope": 731, + "src": "15435:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19394,10 +22300,10 @@ "typeString": "uint256" }, "typeName": { - "id": 610, + "id": 691, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13241:7:0", + "src": "15435:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19407,31 +22313,30 @@ "visibility": "internal" } ], - "src": "12998:263:0" + "src": "15179:276:0" }, - "payable": false, "returnParameters": { - "id": 615, + "id": 696, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 614, + "id": 695, "name": "", "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13307:5:0", + "scope": 731, + "src": "15501:12:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 613, + "id": 694, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "13307:5:0", + "src": "15501:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -19441,19 +22346,19 @@ "visibility": "internal" } ], - "src": "13306:7:0" + "src": "15500:14:0" }, - "scope": 692, - "src": "12968:635:0", + "scope": 773, + "src": "15149:658:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 690, + "id": 771, "nodeType": "Block", - "src": "14638:148:0", + "src": "16855:148:0", "statements": [ { "expression": { @@ -19464,12 +22369,12 @@ "arguments": [ { "argumentTypes": null, - "id": 677, + "id": 758, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 652, - "src": "14687:2:0", + "referencedDeclaration": 733, + "src": "16904:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19477,12 +22382,12 @@ }, { "argumentTypes": null, - "id": 678, + "id": 759, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "14691:5:0", + "referencedDeclaration": 735, + "src": "16908:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19490,12 +22395,12 @@ }, { "argumentTypes": null, - "id": 679, + "id": 760, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "14698:4:0", + "referencedDeclaration": 737, + "src": "16915:4:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -19503,25 +22408,25 @@ }, { "argumentTypes": null, - "id": 680, + "id": 761, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "14704:9:0", + "referencedDeclaration": 739, + "src": "16921:9:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 681, + "id": 762, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 660, - "src": "14715:9:0", + "referencedDeclaration": 741, + "src": "16932:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19529,12 +22434,12 @@ }, { "argumentTypes": null, - "id": 682, - "name": "dataGas", + "id": 763, + "name": "baseGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 662, - "src": "14726:7:0", + "referencedDeclaration": 743, + "src": "16943:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19542,12 +22447,12 @@ }, { "argumentTypes": null, - "id": 683, + "id": 764, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 664, - "src": "14735:8:0", + "referencedDeclaration": 745, + "src": "16952:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19555,12 +22460,12 @@ }, { "argumentTypes": null, - "id": 684, + "id": 765, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "14745:8:0", + "referencedDeclaration": 747, + "src": "16962:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19568,12 +22473,12 @@ }, { "argumentTypes": null, - "id": 685, + "id": 766, "name": "refundReceiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "14755:14:0", + "referencedDeclaration": 749, + "src": "16972:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19581,12 +22486,12 @@ }, { "argumentTypes": null, - "id": 686, + "id": 767, "name": "_nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "14771:6:0", + "referencedDeclaration": 751, + "src": "16988:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19608,7 +22513,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -19636,18 +22541,18 @@ "typeString": "uint256" } ], - "id": 676, + "id": 757, "name": "encodeTransactionData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 650, - "src": "14665:21:0", + "referencedDeclaration": 731, + "src": "16882:21:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "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": 687, + "id": 768, "isConstant": false, "isLValue": false, "isPure": false, @@ -19655,7 +22560,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14665:113:0", + "src": "16882:113:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -19669,18 +22574,18 @@ "typeString": "bytes memory" } ], - "id": 675, + "id": 756, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "14655:9:0", + "referencedDeclaration": 4360, + "src": "16872:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 688, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -19688,38 +22593,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14655:124:0", + "src": "16872:124:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 674, - "id": 689, + "functionReturnParameters": 755, + "id": 770, "nodeType": "Return", - "src": "14648:131:0" + "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 dataGas 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": 691, + "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, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 671, + "id": 752, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 652, + "id": 733, "name": "to", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14326:10:0", + "scope": 772, + "src": "16530:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19727,10 +22631,11 @@ "typeString": "address" }, "typeName": { - "id": 651, + "id": 732, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14326:7:0", + "src": "16530:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19741,11 +22646,11 @@ }, { "constant": false, - "id": 654, + "id": 735, "name": "value", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14346:13:0", + "scope": 772, + "src": "16551:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19753,10 +22658,10 @@ "typeString": "uint256" }, "typeName": { - "id": 653, + "id": 734, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14346:7:0", + "src": "16551:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19767,22 +22672,22 @@ }, { "constant": false, - "id": 656, + "id": 737, "name": "data", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14369:10:0", + "scope": 772, + "src": "16575:17:0", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 655, + "id": 736, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "14369:5:0", + "src": "16575:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -19793,26 +22698,26 @@ }, { "constant": false, - "id": 658, + "id": 739, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14389:24:0", + "scope": 772, + "src": "16603:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 657, + "id": 738, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "14389:14:0", + "referencedDeclaration": 1802, + "src": "16603:14:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -19821,11 +22726,11 @@ }, { "constant": false, - "id": 660, + "id": 741, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14423:17:0", + "scope": 772, + "src": "16638:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19833,10 +22738,10 @@ "typeString": "uint256" }, "typeName": { - "id": 659, + "id": 740, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14423:7:0", + "src": "16638:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19847,11 +22752,11 @@ }, { "constant": false, - "id": 662, - "name": "dataGas", + "id": 743, + "name": "baseGas", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14450:15:0", + "scope": 772, + "src": "16666:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19859,10 +22764,10 @@ "typeString": "uint256" }, "typeName": { - "id": 661, + "id": 742, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14450:7:0", + "src": "16666:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19873,11 +22778,11 @@ }, { "constant": false, - "id": 664, + "id": 745, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14475:16:0", + "scope": 772, + "src": "16692:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19885,10 +22790,10 @@ "typeString": "uint256" }, "typeName": { - "id": 663, + "id": 744, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14475:7:0", + "src": "16692:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19899,11 +22804,11 @@ }, { "constant": false, - "id": 666, + "id": 747, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14501:16:0", + "scope": 772, + "src": "16718:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19911,10 +22816,11 @@ "typeString": "address" }, "typeName": { - "id": 665, + "id": 746, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14501:7:0", + "src": "16718:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19925,11 +22831,11 @@ }, { "constant": false, - "id": 668, + "id": 749, "name": "refundReceiver", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14527:22:0", + "scope": 772, + "src": "16744:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19937,10 +22843,11 @@ "typeString": "address" }, "typeName": { - "id": 667, + "id": 748, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14527:7:0", + "src": "16744:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19951,11 +22858,11 @@ }, { "constant": false, - "id": 670, + "id": 751, "name": "_nonce", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14559:14:0", + "scope": 772, + "src": "16776:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19963,10 +22870,10 @@ "typeString": "uint256" }, "typeName": { - "id": 669, + "id": 750, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14559:7:0", + "src": "16776:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19976,20 +22883,19 @@ "visibility": "internal" } ], - "src": "14316:263:0" + "src": "16520:276:0" }, - "payable": false, "returnParameters": { - "id": 674, + "id": 755, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 673, + "id": 754, "name": "", "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14625:7:0", + "scope": 772, + "src": "16842:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19997,10 +22903,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 672, + "id": 753, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "14625:7:0", + "src": "16842:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20010,39 +22916,51 @@ "visibility": "internal" } ], - "src": "14624:9:0" + "src": "16841:9:0" }, - "scope": 692, - "src": "14289:497:0", + "scope": 773, + "src": "16493:510:0", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 693, - "src": "534:14254:0" + "scope": 774, + "src": "568:16437:0" } ], - "src": "0:14789:0" + "src": "0:17006:0" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": { - "4": { - "events": {}, + "1": { "links": {}, - "address": "0x1d0fbe91e6f0c8506b70a9659b3b9f962d25bfa1", - "transactionHash": "0xa1b4d6790c09394af1233b0ae788b1d92f58be265e6baa815930e502393f0eaa" + "events": {}, + "address": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", + "updated_at": 1555073253689 }, - "1538739975997": { - "events": {}, + "4": { "links": {}, - "address": "0x254dffcd3277c0b1660f6d42efbb754edababc2b", - "transactionHash": "0x515bd2920d6d65a280f2456bc1a7e2f38eeccd5995708dfb55bb1871875ae37d" + "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.0", - "updatedAt": "2018-10-05T14:43:41.464Z" + "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 index 266bcc87..ed883802 100644 --- a/safe-contracts/build/contracts/ISignatureValidator.json +++ b/safe-contracts/build/contracts/ISignatureValidator.json @@ -16,8 +16,8 @@ "name": "isValidSignature", "outputs": [ { - "name": "isValid", - "type": "bool" + "name": "", + "type": "bytes4" } ], "payable": false, @@ -29,27 +29,28 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity 0.4.24;\n\ncontract ISignatureValidator {\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 a bool upon valid or invalid signature with corresponding _data\n * MUST take (bytes, bytes) as arguments\n */ \n function isValidSignature(\n bytes _data, \n bytes _signature)\n public\n returns (bool isValid); \n}", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", "exportedSymbols": { "ISignatureValidator": [ - 1803 + 2080 ] }, - "id": 1804, + "id": 2081, "nodeType": "SourceUnit", "nodes": [ { - "id": 1793, + "id": 2067, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:13" + "src": "0:23:14" }, { "baseContracts": [], @@ -57,45 +58,87 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 1803, + "id": 2080, "linearizedBaseContracts": [ - 1803 + 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 a bool upon valid or invalid signature with corresponding _data\nMUST take (bytes, bytes) as arguments", - "id": 1802, + "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, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "isValidSignature", "nodeType": "FunctionDefinition", "parameters": { - "id": 1798, + "id": 2075, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1795, + "id": 2072, "name": "_data", "nodeType": "VariableDeclaration", - "scope": 1802, - "src": "476:11:13", + "scope": 2079, + "src": "669:20:14", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 1794, + "id": 2071, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "476:5:13", + "src": "669:5:14", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -106,22 +149,22 @@ }, { "constant": false, - "id": 1797, + "id": 2074, "name": "_signature", "nodeType": "VariableDeclaration", - "scope": 1802, - "src": "498:16:13", + "scope": 2079, + "src": "700:25:14", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 1796, + "id": 2073, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "498:5:13", + "src": "700:5:14", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -131,74 +174,74 @@ "visibility": "internal" } ], - "src": "466:49:13" + "src": "659:67:14" }, - "payable": false, "returnParameters": { - "id": 1801, + "id": 2078, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1800, - "name": "isValid", + "id": 2077, + "name": "", "nodeType": "VariableDeclaration", - "scope": 1802, - "src": "548:12:13", + "scope": 2079, + "src": "762:6:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" }, "typeName": { - "id": 1799, - "name": "bool", + "id": 2076, + "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "548:4:13", + "src": "762:6:14", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], - "src": "547:14:13" + "src": "761:8:14" }, - "scope": 1803, - "src": "441:121:13", + "scope": 2080, + "src": "634:136:14", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" } ], - "scope": 1804, - "src": "25:540:13" + "scope": 2081, + "src": "25:747:14" } ], - "src": "0:565:13" + "src": "0:772:14" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", "exportedSymbols": { "ISignatureValidator": [ - 1803 + 2080 ] }, - "id": 1804, + "id": 2081, "nodeType": "SourceUnit", "nodes": [ { - "id": 1793, + "id": 2067, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:13" + "src": "0:23:14" }, { "baseContracts": [], @@ -206,45 +249,87 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 1803, + "id": 2080, "linearizedBaseContracts": [ - 1803 + 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 a bool upon valid or invalid signature with corresponding _data\nMUST take (bytes, bytes) as arguments", - "id": 1802, + "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, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "isValidSignature", "nodeType": "FunctionDefinition", "parameters": { - "id": 1798, + "id": 2075, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1795, + "id": 2072, "name": "_data", "nodeType": "VariableDeclaration", - "scope": 1802, - "src": "476:11:13", + "scope": 2079, + "src": "669:20:14", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 1794, + "id": 2071, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "476:5:13", + "src": "669:5:14", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -255,22 +340,22 @@ }, { "constant": false, - "id": 1797, + "id": 2074, "name": "_signature", "nodeType": "VariableDeclaration", - "scope": 1802, - "src": "498:16:13", + "scope": 2079, + "src": "700:25:14", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 1796, + "id": 2073, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "498:5:13", + "src": "700:5:14", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -280,60 +365,59 @@ "visibility": "internal" } ], - "src": "466:49:13" + "src": "659:67:14" }, - "payable": false, "returnParameters": { - "id": 1801, + "id": 2078, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1800, - "name": "isValid", + "id": 2077, + "name": "", "nodeType": "VariableDeclaration", - "scope": 1802, - "src": "548:12:13", + "scope": 2079, + "src": "762:6:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" }, "typeName": { - "id": 1799, - "name": "bool", + "id": 2076, + "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "548:4:13", + "src": "762:6:14", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], - "src": "547:14:13" + "src": "761:8:14" }, - "scope": 1803, - "src": "441:121:13", + "scope": 2080, + "src": "634:136:14", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" } ], - "scope": 1804, - "src": "25:540:13" + "scope": 2081, + "src": "25:747:14" } ], - "src": "0:565:13" + "src": "0:772:14" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.938Z" + "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 index 0af762ab..222c6be4 100644 --- a/safe-contracts/build/contracts/MasterCopy.json +++ b/safe-contracts/build/contracts/MasterCopy.json @@ -16,39 +16,40 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610276806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582035e9d5d611938f796affd4397aed671c5c4079783e0a67a874440cb154a411440029", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582035e9d5d611938f796affd4397aed671c5c4079783e0a67a874440cb154a411440029", - "sourceMap": "203:673:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:673:9;;;;;;;", - "deployedSourceMap": "203:673:9:-;;;;;;;;;;;;;;;;;;;;;;;;626:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o", - "source": "pragma solidity 0.4.24;\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 != 0, \"Invalid master copy address provided\");\n masterCopy = _masterCopy;\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", "exportedSymbols": { "MasterCopy": [ - 1693 + 1839 ] }, - "id": 1694, + "id": 1840, "nodeType": "SourceUnit", "nodes": [ { - "id": 1668, + "id": 1812, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:9" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", "file": "./SelfAuthorized.sol", - "id": 1669, + "id": 1813, "nodeType": "ImportDirective", - "scope": 1694, - "sourceUnit": 1736, + "scope": 1840, + "sourceUnit": 1882, "src": "24:30:9", "symbolAliases": [], "unitAlias": "" @@ -59,41 +60,41 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1670, + "id": 1814, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1735, + "referencedDeclaration": 1881, "src": "226:14:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", + "typeIdentifier": "t_contract$_SelfAuthorized_$1881", "typeString": "contract SelfAuthorized" } }, - "id": 1671, + "id": 1815, "nodeType": "InheritanceSpecifier", "src": "226:14:9" } ], "contractDependencies": [ - 1735 + 1881 ], "contractKind": "contract", "documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1693, + "id": 1839, "linearizedBaseContracts": [ - 1693, - 1735 + 1839, + 1881 ], "name": "MasterCopy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1673, + "id": 1817, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 1693, + "scope": 1839, "src": "465:18:9", "stateVariable": true, "storageLocation": "default", @@ -102,10 +103,11 @@ "typeString": "address" }, "typeName": { - "id": 1672, + "id": 1816, "name": "address", "nodeType": "ElementaryTypeName", "src": "465:7:9", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -116,9 +118,9 @@ }, { "body": { - "id": 1691, + "id": 1837, "nodeType": "Block", - "src": "711:163:9", + "src": "711:172:9", "statements": [ { "expression": { @@ -130,18 +132,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1683, + "id": 1829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1681, + "id": 1825, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1675, + "referencedDeclaration": 1819, "src": "776:11:9", "typeDescriptions": { "typeIdentifier": "t_address", @@ -152,23 +154,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1682, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "791:1:9", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "791:10:9", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "776:16:9", + "src": "776:25:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -177,14 +217,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 1684, + "id": 1830, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "794:38:9", + "src": "803:38:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", @@ -204,21 +244,21 @@ "typeString": "literal_string \"Invalid master copy address provided\"" } ], - "id": 1680, + "id": 1824, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, + "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": 1685, + "id": 1831, "isConstant": false, "isLValue": false, "isPure": false, @@ -226,32 +266,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "768:65:9", + "src": "768:74:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1686, + "id": 1832, "nodeType": "ExpressionStatement", - "src": "768:65:9" + "src": "768:74:9" }, { "expression": { "argumentTypes": null, - "id": 1689, + "id": 1835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1687, + "id": 1833, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1673, - "src": "843:10:9", + "referencedDeclaration": 1817, + "src": "852:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -261,45 +301,44 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1688, + "id": 1834, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1675, - "src": "856:11:9", + "referencedDeclaration": 1819, + "src": "865:11:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "843:24:9", + "src": "852:24:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1690, + "id": 1836, "nodeType": "ExpressionStatement", - "src": "843:24:9" + "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": 1692, + "id": 1838, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1678, + "id": 1822, "modifierName": { "argumentTypes": null, - "id": 1677, + "id": 1821, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, + "referencedDeclaration": 1880, "src": "696:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -313,15 +352,15 @@ "name": "changeMasterCopy", "nodeType": "FunctionDefinition", "parameters": { - "id": 1676, + "id": 1820, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1675, + "id": 1819, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 1692, + "scope": 1838, "src": "652:19:9", "stateVariable": false, "storageLocation": "default", @@ -330,10 +369,11 @@ "typeString": "address" }, "typeName": { - "id": 1674, + "id": 1818, "name": "address", "nodeType": "ElementaryTypeName", "src": "652:7:9", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -345,53 +385,53 @@ ], "src": "651:21:9" }, - "payable": false, "returnParameters": { - "id": 1679, + "id": 1823, "nodeType": "ParameterList", "parameters": [], "src": "711:0:9" }, - "scope": 1693, - "src": "626:248:9", + "scope": 1839, + "src": "626:257:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1694, - "src": "203:673:9" + "scope": 1840, + "src": "203:682:9" } ], - "src": "0:877:9" + "src": "0:886:9" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", "exportedSymbols": { "MasterCopy": [ - 1693 + 1839 ] }, - "id": 1694, + "id": 1840, "nodeType": "SourceUnit", "nodes": [ { - "id": 1668, + "id": 1812, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:9" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", "file": "./SelfAuthorized.sol", - "id": 1669, + "id": 1813, "nodeType": "ImportDirective", - "scope": 1694, - "sourceUnit": 1736, + "scope": 1840, + "sourceUnit": 1882, "src": "24:30:9", "symbolAliases": [], "unitAlias": "" @@ -402,41 +442,41 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1670, + "id": 1814, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1735, + "referencedDeclaration": 1881, "src": "226:14:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", + "typeIdentifier": "t_contract$_SelfAuthorized_$1881", "typeString": "contract SelfAuthorized" } }, - "id": 1671, + "id": 1815, "nodeType": "InheritanceSpecifier", "src": "226:14:9" } ], "contractDependencies": [ - 1735 + 1881 ], "contractKind": "contract", "documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1693, + "id": 1839, "linearizedBaseContracts": [ - 1693, - 1735 + 1839, + 1881 ], "name": "MasterCopy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1673, + "id": 1817, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 1693, + "scope": 1839, "src": "465:18:9", "stateVariable": true, "storageLocation": "default", @@ -445,10 +485,11 @@ "typeString": "address" }, "typeName": { - "id": 1672, + "id": 1816, "name": "address", "nodeType": "ElementaryTypeName", "src": "465:7:9", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -459,9 +500,9 @@ }, { "body": { - "id": 1691, + "id": 1837, "nodeType": "Block", - "src": "711:163:9", + "src": "711:172:9", "statements": [ { "expression": { @@ -473,18 +514,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1683, + "id": 1829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1681, + "id": 1825, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1675, + "referencedDeclaration": 1819, "src": "776:11:9", "typeDescriptions": { "typeIdentifier": "t_address", @@ -495,23 +536,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1682, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "791:1:9", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "791:10:9", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "776:16:9", + "src": "776:25:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -520,14 +599,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 1684, + "id": 1830, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "794:38:9", + "src": "803:38:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", @@ -547,21 +626,21 @@ "typeString": "literal_string \"Invalid master copy address provided\"" } ], - "id": 1680, + "id": 1824, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, + "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": 1685, + "id": 1831, "isConstant": false, "isLValue": false, "isPure": false, @@ -569,32 +648,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "768:65:9", + "src": "768:74:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1686, + "id": 1832, "nodeType": "ExpressionStatement", - "src": "768:65:9" + "src": "768:74:9" }, { "expression": { "argumentTypes": null, - "id": 1689, + "id": 1835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1687, + "id": 1833, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1673, - "src": "843:10:9", + "referencedDeclaration": 1817, + "src": "852:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -604,45 +683,44 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1688, + "id": 1834, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1675, - "src": "856:11:9", + "referencedDeclaration": 1819, + "src": "865:11:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "843:24:9", + "src": "852:24:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1690, + "id": 1836, "nodeType": "ExpressionStatement", - "src": "843:24:9" + "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": 1692, + "id": 1838, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1678, + "id": 1822, "modifierName": { "argumentTypes": null, - "id": 1677, + "id": 1821, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, + "referencedDeclaration": 1880, "src": "696:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -656,15 +734,15 @@ "name": "changeMasterCopy", "nodeType": "FunctionDefinition", "parameters": { - "id": 1676, + "id": 1820, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1675, + "id": 1819, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 1692, + "scope": 1838, "src": "652:19:9", "stateVariable": false, "storageLocation": "default", @@ -673,10 +751,11 @@ "typeString": "address" }, "typeName": { - "id": 1674, + "id": 1818, "name": "address", "nodeType": "ElementaryTypeName", "src": "652:7:9", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -688,31 +767,30 @@ ], "src": "651:21:9" }, - "payable": false, "returnParameters": { - "id": 1679, + "id": 1823, "nodeType": "ParameterList", "parameters": [], "src": "711:0:9" }, - "scope": 1693, - "src": "626:248:9", + "scope": 1839, + "src": "626:257:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1694, - "src": "203:673:9" + "scope": 1840, + "src": "203:682:9" } ], - "src": "0:877:9" + "src": "0:886:9" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.937Z" + "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 index 6f71b541..9b173f48 100644 --- a/safe-contracts/build/contracts/Migrations.json +++ b/safe-contracts/build/contracts/Migrations.json @@ -64,29 +64,29 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820395a1faf61b0f17e3924c1d3e3b1152739b523adb57dd5b79bb0bea6897a5ff70029", - "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820395a1faf61b0f17e3924c1d3e3b1152739b523adb57dd5b79bb0bea6897a5ff70029", + "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:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;400:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;400:195:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;77:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;77:36:1;;;;;;;;;;;;;;;;;;;;;;;51:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;51:20:1;;;;;;;;;;;;;;;;;;;;;;;;;;;265:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;265:129:1;;;;;;;;;;;;;;;;;;;;;;;;;;400:195;486:19;170:5;;;;;;;;;;;156:19;;:10;:19;;;152:26;;;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;;;;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.4.4;\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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Migrations.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Migrations.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 749 + 830 ] }, - "id": 750, + "id": 831, "nodeType": "SourceUnit", "nodes": [ { - "id": 694, + "id": 775, "literals": [ "solidity", "^", - "0.4", - ".4" + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:1" @@ -97,19 +97,19 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 749, + "id": 830, "linearizedBaseContracts": [ - 749 + 830 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 696, + "id": 777, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 749, + "scope": 830, "src": "51:20:1", "stateVariable": true, "storageLocation": "default", @@ -118,10 +118,11 @@ "typeString": "address" }, "typeName": { - "id": 695, + "id": 776, "name": "address", "nodeType": "ElementaryTypeName", "src": "51:7:1", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -132,10 +133,10 @@ }, { "constant": false, - "id": 698, + "id": 779, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "scope": 749, + "scope": 830, "src": "77:36:1", "stateVariable": true, "storageLocation": "default", @@ -144,7 +145,7 @@ "typeString": "uint256" }, "typeName": { - "id": 697, + "id": 778, "name": "uint", "nodeType": "ElementaryTypeName", "src": "77:4:1", @@ -158,7 +159,7 @@ }, { "body": { - "id": 706, + "id": 787, "nodeType": "Block", "src": "142:43:1", "statements": [ @@ -169,7 +170,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 703, + "id": 784, "isConstant": false, "isLValue": false, "isPure": false, @@ -178,18 +179,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 700, + "id": 781, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, + "referencedDeclaration": 4366, "src": "156:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 701, + "id": 782, "isConstant": false, "isLValue": false, "isPure": false, @@ -199,19 +200,19 @@ "referencedDeclaration": null, "src": "156:10:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 702, + "id": 783, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 777, "src": "170:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -225,11 +226,11 @@ } }, "falseBody": null, - "id": 705, + "id": 786, "nodeType": "IfStatement", "src": "152:26:1", "trueBody": { - "id": 704, + "id": 785, "nodeType": "PlaceholderStatement", "src": "177:1:1" } @@ -237,11 +238,11 @@ ] }, "documentation": null, - "id": 707, + "id": 788, "name": "restricted", "nodeType": "ModifierDefinition", "parameters": { - "id": 699, + "id": 780, "nodeType": "ParameterList", "parameters": [], "src": "139:2:1" @@ -251,25 +252,25 @@ }, { "body": { - "id": 715, + "id": 796, "nodeType": "Block", "src": "224:35:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 713, + "id": 794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 710, + "id": 791, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 777, "src": "234:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -282,18 +283,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 711, + "id": 792, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, + "referencedDeclaration": 4366, "src": "242:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 712, + "id": 793, "isConstant": false, "isLValue": false, "isPure": false, @@ -303,8 +304,8 @@ "referencedDeclaration": null, "src": "242:10:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "src": "234:18:1", @@ -313,34 +314,32 @@ "typeString": "address" } }, - "id": 714, + "id": 795, "nodeType": "ExpressionStatement", "src": "234:18:1" } ] }, "documentation": null, - "id": 716, + "id": 797, "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, + "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 708, + "id": 789, "nodeType": "ParameterList", "parameters": [], "src": "202:2:1" }, - "payable": false, "returnParameters": { - "id": 709, + "id": 790, "nodeType": "ParameterList", "parameters": [], "src": "224:0:1" }, - "scope": 749, + "scope": 830, "src": "191:68:1", "stateMutability": "nonpayable", "superFunction": null, @@ -348,25 +347,25 @@ }, { "body": { - "id": 727, + "id": 808, "nodeType": "Block", "src": "341:53:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 725, + "id": 806, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 723, + "id": 804, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 779, "src": "351:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -377,11 +376,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 724, + "id": 805, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 718, + "referencedDeclaration": 799, "src": "378:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -394,28 +393,27 @@ "typeString": "uint256" } }, - "id": 726, + "id": 807, "nodeType": "ExpressionStatement", "src": "351:36:1" } ] }, "documentation": null, - "id": 728, + "id": 809, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 721, + "id": 802, "modifierName": { "argumentTypes": null, - "id": 720, + "id": 801, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 707, + "referencedDeclaration": 788, "src": "326:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -429,15 +427,15 @@ "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { - "id": 719, + "id": 800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 718, + "id": 799, "name": "completed", "nodeType": "VariableDeclaration", - "scope": 728, + "scope": 809, "src": "287:14:1", "stateVariable": false, "storageLocation": "default", @@ -446,7 +444,7 @@ "typeString": "uint256" }, "typeName": { - "id": 717, + "id": 798, "name": "uint", "nodeType": "ElementaryTypeName", "src": "287:4:1", @@ -461,14 +459,13 @@ ], "src": "286:16:1" }, - "payable": false, "returnParameters": { - "id": 722, + "id": 803, "nodeType": "ParameterList", "parameters": [], "src": "341:0:1" }, - "scope": 749, + "scope": 830, "src": "265:129:1", "stateMutability": "nonpayable", "superFunction": null, @@ -476,37 +473,37 @@ }, { "body": { - "id": 747, + "id": 828, "nodeType": "Block", "src": "476:119:1", "statements": [ { "assignments": [ - 736 + 817 ], "declarations": [ { "constant": false, - "id": 736, + "id": 817, "name": "upgraded", "nodeType": "VariableDeclaration", - "scope": 748, + "scope": 828, "src": "486:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", + "typeIdentifier": "t_contract$_Migrations_$830", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, - "id": 735, + "id": 816, "name": "Migrations", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 749, + "referencedDeclaration": 830, "src": "486:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", + "typeIdentifier": "t_contract$_Migrations_$830", "typeString": "contract Migrations" } }, @@ -514,17 +511,17 @@ "visibility": "internal" } ], - "id": 740, + "id": 821, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 738, + "id": 819, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, + "referencedDeclaration": 811, "src": "519:11:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -539,18 +536,18 @@ "typeString": "address" } ], - "id": 737, + "id": 818, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 749, + "referencedDeclaration": 830, "src": "508:10:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$749_$", + "typeIdentifier": "t_type$_t_contract$_Migrations_$830_$", "typeString": "type(contract Migrations)" } }, - "id": 739, + "id": 820, "isConstant": false, "isLValue": false, "isPure": false, @@ -560,7 +557,7 @@ "nodeType": "FunctionCall", "src": "508:23:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", + "typeIdentifier": "t_contract$_Migrations_$830", "typeString": "contract Migrations" } }, @@ -573,11 +570,11 @@ "arguments": [ { "argumentTypes": null, - "id": 744, + "id": 825, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 779, "src": "563:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -594,32 +591,32 @@ ], "expression": { "argumentTypes": null, - "id": 741, + "id": 822, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 736, + "referencedDeclaration": 817, "src": "541:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", + "typeIdentifier": "t_contract$_Migrations_$830", "typeString": "contract Migrations" } }, - "id": 743, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", - "referencedDeclaration": 728, + "referencedDeclaration": 809, "src": "541:21:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 745, + "id": 826, "isConstant": false, "isLValue": false, "isPure": false, @@ -633,28 +630,27 @@ "typeString": "tuple()" } }, - "id": 746, + "id": 827, "nodeType": "ExpressionStatement", "src": "541:47:1" } ] }, "documentation": null, - "id": 748, + "id": 829, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 733, + "id": 814, "modifierName": { "argumentTypes": null, - "id": 732, + "id": 813, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 707, + "referencedDeclaration": 788, "src": "461:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -668,15 +664,15 @@ "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 731, + "id": 812, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 730, + "id": 811, "name": "new_address", "nodeType": "VariableDeclaration", - "scope": 748, + "scope": 829, "src": "417:19:1", "stateVariable": false, "storageLocation": "default", @@ -685,10 +681,11 @@ "typeString": "address" }, "typeName": { - "id": 729, + "id": 810, "name": "address", "nodeType": "ElementaryTypeName", "src": "417:7:1", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -700,43 +697,42 @@ ], "src": "416:21:1" }, - "payable": false, "returnParameters": { - "id": 734, + "id": 815, "nodeType": "ParameterList", "parameters": [], "src": "476:0:1" }, - "scope": 749, + "scope": 830, "src": "400:195:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 750, + "scope": 831, "src": "25:572:1" } ], "src": "0:598:1" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Migrations.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 749 + 830 ] }, - "id": 750, + "id": 831, "nodeType": "SourceUnit", "nodes": [ { - "id": 694, + "id": 775, "literals": [ "solidity", "^", - "0.4", - ".4" + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:1" @@ -747,19 +743,19 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 749, + "id": 830, "linearizedBaseContracts": [ - 749 + 830 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 696, + "id": 777, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 749, + "scope": 830, "src": "51:20:1", "stateVariable": true, "storageLocation": "default", @@ -768,10 +764,11 @@ "typeString": "address" }, "typeName": { - "id": 695, + "id": 776, "name": "address", "nodeType": "ElementaryTypeName", "src": "51:7:1", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -782,10 +779,10 @@ }, { "constant": false, - "id": 698, + "id": 779, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "scope": 749, + "scope": 830, "src": "77:36:1", "stateVariable": true, "storageLocation": "default", @@ -794,7 +791,7 @@ "typeString": "uint256" }, "typeName": { - "id": 697, + "id": 778, "name": "uint", "nodeType": "ElementaryTypeName", "src": "77:4:1", @@ -808,7 +805,7 @@ }, { "body": { - "id": 706, + "id": 787, "nodeType": "Block", "src": "142:43:1", "statements": [ @@ -819,7 +816,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 703, + "id": 784, "isConstant": false, "isLValue": false, "isPure": false, @@ -828,18 +825,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 700, + "id": 781, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, + "referencedDeclaration": 4366, "src": "156:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 701, + "id": 782, "isConstant": false, "isLValue": false, "isPure": false, @@ -849,19 +846,19 @@ "referencedDeclaration": null, "src": "156:10:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 702, + "id": 783, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 777, "src": "170:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -875,11 +872,11 @@ } }, "falseBody": null, - "id": 705, + "id": 786, "nodeType": "IfStatement", "src": "152:26:1", "trueBody": { - "id": 704, + "id": 785, "nodeType": "PlaceholderStatement", "src": "177:1:1" } @@ -887,11 +884,11 @@ ] }, "documentation": null, - "id": 707, + "id": 788, "name": "restricted", "nodeType": "ModifierDefinition", "parameters": { - "id": 699, + "id": 780, "nodeType": "ParameterList", "parameters": [], "src": "139:2:1" @@ -901,25 +898,25 @@ }, { "body": { - "id": 715, + "id": 796, "nodeType": "Block", "src": "224:35:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 713, + "id": 794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 710, + "id": 791, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 777, "src": "234:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -932,18 +929,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 711, + "id": 792, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, + "referencedDeclaration": 4366, "src": "242:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 712, + "id": 793, "isConstant": false, "isLValue": false, "isPure": false, @@ -953,8 +950,8 @@ "referencedDeclaration": null, "src": "242:10:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "src": "234:18:1", @@ -963,34 +960,32 @@ "typeString": "address" } }, - "id": 714, + "id": 795, "nodeType": "ExpressionStatement", "src": "234:18:1" } ] }, "documentation": null, - "id": 716, + "id": 797, "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, + "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 708, + "id": 789, "nodeType": "ParameterList", "parameters": [], "src": "202:2:1" }, - "payable": false, "returnParameters": { - "id": 709, + "id": 790, "nodeType": "ParameterList", "parameters": [], "src": "224:0:1" }, - "scope": 749, + "scope": 830, "src": "191:68:1", "stateMutability": "nonpayable", "superFunction": null, @@ -998,25 +993,25 @@ }, { "body": { - "id": 727, + "id": 808, "nodeType": "Block", "src": "341:53:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 725, + "id": 806, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 723, + "id": 804, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 779, "src": "351:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1027,11 +1022,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 724, + "id": 805, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 718, + "referencedDeclaration": 799, "src": "378:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1044,28 +1039,27 @@ "typeString": "uint256" } }, - "id": 726, + "id": 807, "nodeType": "ExpressionStatement", "src": "351:36:1" } ] }, "documentation": null, - "id": 728, + "id": 809, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 721, + "id": 802, "modifierName": { "argumentTypes": null, - "id": 720, + "id": 801, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 707, + "referencedDeclaration": 788, "src": "326:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -1079,15 +1073,15 @@ "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { - "id": 719, + "id": 800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 718, + "id": 799, "name": "completed", "nodeType": "VariableDeclaration", - "scope": 728, + "scope": 809, "src": "287:14:1", "stateVariable": false, "storageLocation": "default", @@ -1096,7 +1090,7 @@ "typeString": "uint256" }, "typeName": { - "id": 717, + "id": 798, "name": "uint", "nodeType": "ElementaryTypeName", "src": "287:4:1", @@ -1111,14 +1105,13 @@ ], "src": "286:16:1" }, - "payable": false, "returnParameters": { - "id": 722, + "id": 803, "nodeType": "ParameterList", "parameters": [], "src": "341:0:1" }, - "scope": 749, + "scope": 830, "src": "265:129:1", "stateMutability": "nonpayable", "superFunction": null, @@ -1126,37 +1119,37 @@ }, { "body": { - "id": 747, + "id": 828, "nodeType": "Block", "src": "476:119:1", "statements": [ { "assignments": [ - 736 + 817 ], "declarations": [ { "constant": false, - "id": 736, + "id": 817, "name": "upgraded", "nodeType": "VariableDeclaration", - "scope": 748, + "scope": 828, "src": "486:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", + "typeIdentifier": "t_contract$_Migrations_$830", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, - "id": 735, + "id": 816, "name": "Migrations", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 749, + "referencedDeclaration": 830, "src": "486:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", + "typeIdentifier": "t_contract$_Migrations_$830", "typeString": "contract Migrations" } }, @@ -1164,17 +1157,17 @@ "visibility": "internal" } ], - "id": 740, + "id": 821, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 738, + "id": 819, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, + "referencedDeclaration": 811, "src": "519:11:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1189,18 +1182,18 @@ "typeString": "address" } ], - "id": 737, + "id": 818, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 749, + "referencedDeclaration": 830, "src": "508:10:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$749_$", + "typeIdentifier": "t_type$_t_contract$_Migrations_$830_$", "typeString": "type(contract Migrations)" } }, - "id": 739, + "id": 820, "isConstant": false, "isLValue": false, "isPure": false, @@ -1210,7 +1203,7 @@ "nodeType": "FunctionCall", "src": "508:23:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", + "typeIdentifier": "t_contract$_Migrations_$830", "typeString": "contract Migrations" } }, @@ -1223,11 +1216,11 @@ "arguments": [ { "argumentTypes": null, - "id": 744, + "id": 825, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 779, "src": "563:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1244,32 +1237,32 @@ ], "expression": { "argumentTypes": null, - "id": 741, + "id": 822, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 736, + "referencedDeclaration": 817, "src": "541:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", + "typeIdentifier": "t_contract$_Migrations_$830", "typeString": "contract Migrations" } }, - "id": 743, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", - "referencedDeclaration": 728, + "referencedDeclaration": 809, "src": "541:21:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 745, + "id": 826, "isConstant": false, "isLValue": false, "isPure": false, @@ -1283,28 +1276,27 @@ "typeString": "tuple()" } }, - "id": 746, + "id": 827, "nodeType": "ExpressionStatement", "src": "541:47:1" } ] }, "documentation": null, - "id": 748, + "id": 829, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 733, + "id": 814, "modifierName": { "argumentTypes": null, - "id": 732, + "id": 813, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 707, + "referencedDeclaration": 788, "src": "461:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -1318,15 +1310,15 @@ "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 731, + "id": 812, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 730, + "id": 811, "name": "new_address", "nodeType": "VariableDeclaration", - "scope": 748, + "scope": 829, "src": "417:19:1", "stateVariable": false, "storageLocation": "default", @@ -1335,10 +1327,11 @@ "typeString": "address" }, "typeName": { - "id": 729, + "id": 810, "name": "address", "nodeType": "ElementaryTypeName", "src": "417:7:1", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1350,21 +1343,20 @@ ], "src": "416:21:1" }, - "payable": false, "returnParameters": { - "id": 734, + "id": 815, "nodeType": "ParameterList", "parameters": [], "src": "476:0:1" }, - "scope": 749, + "scope": 830, "src": "400:195:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 750, + "scope": 831, "src": "25:572:1" } ], @@ -1372,22 +1364,9 @@ }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0x047349c3f4b2c430c4e9f56be4089dee0e4e0a53", - "transactionHash": "0x2fb02eb9fe8f01ee1cacffad5f8f9799b16ab8dd24526154ddace9274181d30b" - }, - "1538739975997": { - "events": {}, - "links": {}, - "address": "0xe78a0f7e598cc8b0bb87894b0f60dd2a88d6a8ab", - "transactionHash": "0xaedda9523231e6436096a02f29777285f5b45e35532d888872fa86d24e3d854d" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:43:41.425Z" + "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 index 899d54de..94765f5e 100644 --- a/safe-contracts/build/contracts/MockContract.json +++ b/safe-contracts/build/contracts/MockContract.json @@ -454,35 +454,35 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b506040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506000807f01000000000000000000000000000000000000000000000000000000000000006000191660001916815260200190815260200160002090805190602001906200009792919062000168565b507f0100000000000000000000000000000000000000000000000000000000000000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c01000000000000000000000000000000000000000000000000000000009004021790555062000217565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ab57805160ff1916838001178555620001dc565b82800160010185558215620001dc579182015b82811115620001db578251825591602001919060010190620001be565b5b509050620001eb9190620001ef565b5090565b6200021491905b8082111562000210576000816000905550600101620001f6565b5090565b90565b6132ad80620002276000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a20119f14610a6c57806321fed4d614610a975780632ed238dc14610ad257806336ff0ee514610b055780633956dc6b14610b345780634937c4f614610b4b578063586984a414610b9a5780635a3855ab14610be95780636193659414610c3057806367aad04a14610c83578063682b479714610cb657806368ab6f2f14610cf95780636f40075614610d345780637cd96ee414610d7b57806387abab6514610e0b5780639a1dc86b14610e465780639eaeed7514610e99578063aa788c5514610eec578063af21ac7814610f27578063b3901f2914610f54578063c6ee167f14610faf578063cf11ff5d14611002578063d6fe97781461105d578063d73ca0ac14611098578063d826f88f146110dd578063e211b8a5146110f4578063eb861f691461110b578063f07da22914611146578063f5afa9c1146111af575b6000606060003591506001600281111561018b57fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff1660028111156101ca57fe5b14156102b45760036000366040518083838082843782019150509250505090815260200160405180910390206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156102a55780601f1061027a576101008083540402835291602001916102a5565b820191906000526020600020905b81548152906001019060200180831161028857829003601f168201915b50509250505060405180910390fd5b6002808111156102c057fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff1660028111156102ff57fe5b141561030e5761030d6111f4565b5b60026000366040518083838082843782019150509250505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103c85780601f1061039d576101008083540402835291602001916103c8565b820191906000526020600020905b8154815290600101906020018083116103ab57829003601f168201915b505050505090506000815114156106d757600160028111156103e657fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16600281111561045057fe5b14156105655760086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156105565780601f1061052b57610100808354040283529160200191610556565b820191906000526020600020905b81548152906001019060200180831161053957829003601f168201915b50509250505060405180910390fd5b60028081111561057157fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff1660028111156105db57fe5b14156105ea576105e96111f4565b5b60076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106cf5780601f106106a4576101008083540402835291602001916106cf565b820191906000526020600020905b8154815290600101906020018083116106b257829003601f168201915b505050505090505b6000815114156108a357600160028111156106ee57fe5b600a60009054906101000a900460ff16600281111561070957fe5b14156107cf57600c6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156107c05780601f10610795576101008083540402835291602001916107c0565b820191906000526020600020905b8154815290600101906020018083116107a357829003601f168201915b50509250505060405180910390fd5b6002808111156107db57fe5b600a60009054906101000a900460ff1660028111156107f657fe5b1415610805576108046111f4565b5b600b8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561089b5780601f106108705761010080835404028352916020019161089b565b820191906000526020600020905b81548152906001019060200180831161087e57829003601f168201915b505050505090505b6001600d60008282540192505081905550600160096000600e548560405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600401925050506040516020818303038152906040526040518082805190602001908083835b6020831015156109575780518252602082019150602081019050602083039250610932565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060008282540192505081905550600160046000600e5460003660405160200180848152602001838380828437820191505093505050506040516020818303038152906040526040518082805190602001908083835b602083101515610a1457805182526020820191506020810190506020830392506109ef565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060008282540192505081905550805181602001f35b348015610a7857600080fd5b50610a81611219565b6040518082815260200191505060405180910390f35b348015610aa357600080fd5b50610ad0600480360381019080803590602001908201803590602001919091929391929390505050611223565b005b348015610ade57600080fd5b50610ae76112a9565b60405180826000191660001916815260200191505060405180910390f35b348015610b1157600080fd5b50610b32600480360381019080803515159060200190929190505050611344565b005b348015610b4057600080fd5b50610b4961136f565b005b348015610b5757600080fd5b50610b84600480360381019080803590602001908201803590602001919091929391929390505050611395565b6040518082815260200191505060405180910390f35b348015610ba657600080fd5b50610bd36004803603810190808035906020019082018035906020019190919293919293905050506114c3565b6040518082815260200191505060405180910390f35b348015610bf557600080fd5b50610c2e60048036038101908080359060200190820180359060200191909192939192939080351515906020019092919050505061157b565b005b348015610c3c57600080fd5b50610c816004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506115db565b005b348015610c8f57600080fd5b50610c9861164f565b60405180826000191660001916815260200191505060405180910390f35b348015610cc257600080fd5b50610cf7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611673565b005b348015610d0557600080fd5b50610d32600480360381019080803590602001908201803590602001919091929391929390505050611687565b005b348015610d4057600080fd5b50610d79600480360381019080803590602001908201803590602001919091929391929390803515159060200190929190505050611747565b005b348015610d8757600080fd5b50610d906117a7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dd0578082015181840152602081019050610db5565b50505050905090810190601f168015610dfd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e1757600080fd5b50610e446004803603810190808035906020019082018035906020019190919293919293905050506117e0565b005b348015610e5257600080fd5b50610e9760048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061181a565b005b348015610ea557600080fd5b50610eea60048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061193d565b005b348015610ef857600080fd5b50610f256004803603810190808035906020019082018035906020019190919293919293905050506119f9565b005b348015610f3357600080fd5b50610f5260048036038101908080359060200190929190505050611ab9565b005b348015610f6057600080fd5b50610fad600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611acd565b005b348015610fbb57600080fd5b50611000600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611b16565b005b34801561100e57600080fd5b5061105b600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b8a565b005b34801561106957600080fd5b50611096600480360381019080803590602001908201803590602001919091929391929390505050611bd3565b005b3480156110a457600080fd5b506110db60048036038101908080359060200190820180359060200191909192939192939080359060200190929190505050611c12565b005b3480156110e957600080fd5b506110f2611c5b565b005b34801561110057600080fd5b5061110961269b565b005b34801561111757600080fd5b506111446004803603810190808035906020019082018035906020019190919293919293905050506126e8565b005b34801561115257600080fd5b5061115b6127b7565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156111bb57600080fd5b506111f2600480360381019080803590602001908201803590602001919091929391929390803590602001909291905050506127db565b005b60005b600115611216576060600060c060008060066107d05a03f190506111f7565b50565b6000600d54905090565b60026001838360405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561126557fe5b02179055506112a582828080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b5050565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b60208310151561131457805182526020820191506020810190506020830392506112ef565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902081565b600081611352576000611355565b60015b60ff16905061136b6113668261298a565b6129ce565b5050565b6002600a60006101000a81548160ff0219169083600281111561138e57fe5b0217905550565b6000806113d384848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b905060096000600e548360405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600401925050506040516020818303038152906040526040518082805190602001908083835b6020831015156114765780518252602082019150602081019050602083039250611451565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019166000191681526020019081526020016000205491505092915050565b600060046000600e54858560405160200180848152602001838380828437820191505093505050506040516020818303038152906040526040518082805190602001908083835b60208310151561152f578051825260208201915060208101905060208303925061150a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002054905092915050565b60008161158957600061158c565b60015b60ff1690506115d584848080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506115d08361298a565b612b02565b50505050565b61164984848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612bf6565b50505050565b7f010000000000000000000000000000000000000000000000000000000000000081565b61168461167f82612d10565b6129ce565b50565b60006116c483838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600260066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561173457fe5b021790555061174281612d42565b505050565b600081611755576000611758565b60015b60ff1690506117a184848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061179c8361298a565b612b02565b50505050565b6040805190810160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525081565b6001600a60006101000a81548160ff021916908360028111156117ff57fe5b02179055508181600c9190611815929190612fd5565b505050565b600061185785858080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908360028111156118c757fe5b0217905550828260086000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020919061192c929190612fd5565b5061193681612d42565b5050505050565b600180858560405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561197e57fe5b021790555081816003868660405180838380828437820191505092505050908152602001604051809103902091906119b7929190612fd5565b506119f384848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b50505050565b6000611a3683838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115611aa657fe5b0217905550611ab481612d42565b505050565b611aca611ac58261298a565b6129ce565b50565b611b1183838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611b0c83612d10565b612b02565b505050565b611b8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612b02565b50505050565b611bce83838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611bc983612d10565b612b02565b505050565b611c0e82828080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506129ce565b5050565b611c5683838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611c518361298a565b612b02565b505050565b606060008060008060007f0100000000000000000000000000000000000000000000000000000000000000600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d305780601f10611d0557610100808354040283529160200191611d30565b820191906000526020600020905b815481529060010190602001808311611d1357829003601f168201915b50505050509350836040518082805190602001908083835b602083101515611d6d5780518252602082019150602081019050602083039250611d48565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902092505b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b602083101515611e085780518252602082019150602081019050602083039250611de3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191683600019161415156121505760006001856040518082805190602001908083835b602083101515611e7f5780518252602082019150602081019050602083039250611e5a565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115611ecd57fe5b021790555060206040519081016040528060008152506002856040518082805190602001908083835b602083101515611f1b5780518252602082019150602081019050602083039250611ef6565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611f61929190613055565b5060206040519081016040528060008152506003856040518082805190602001908083835b602083101515611fab5780518252602082019150602081019050602083039250611f86565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611ff19291906130d5565b5060008084600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120a05780601f10612075576101008083540402835291602001916120a0565b820191906000526020600020905b81548152906001019060200180831161208357829003601f168201915b505050505093506020604051908101604052806000815250600080856000191660001916815260200190815260200160002090805190602001906120e5929190613055565b50836040518082805190602001908083835b60208310151561211c57805182526020820191506020810190506020830392506120f7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250611d9d565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506000807f01000000000000000000000000000000000000000000000000000000000000006000191660001916815260200190815260200160002090805190602001906121d3929190613155565b50600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000291505b7f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151561256757819050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561234a57fe5b0217905550602060405190810160405280600081525060076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906123c4929190613055565b50602060405190810160405280600081525060086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020908051906020019061243a9291906130d5565b5060056000827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c010000000000000000000000000000000000000000000000000000000002915060007c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550612272565b7f0100000000000000000000000000000000000000000000000000000000000000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055506020604051908101604052806000815250600b9080519060200190612657929190613055565b506000600a60006101000a81548160ff0219169083600281111561267757fe5b02179055506000600d819055506001600e6000828254019250508190555050505050565b6001600a60006101000a81548160ff021916908360028111156126ba57fe5b02179055506020604051908101604052806000815250600c90805190602001906126e59291906130d5565b50565b600180838360405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561272957fe5b021790555060206040519081016040528060008152506003838360405180838380828437820191505092505050908152602001604051809103902090805190602001906127779291906130d5565b506127b382828080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b5050565b7f010000000000000000000000000000000000000000000000000000000000000081565b61281f83838080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061281a8361298a565b612b02565b505050565b6000816040518082805190602001908083835b60208310151561285c5780518252602082019150602081019050602083039250612837565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050600080600083600019166000191681526020019081526020016000208054600181600116156101000203166002900490501415612986576000807f010000000000000000000000000000000000000000000000000000000000000060001916600019168152602001908152602001600020600080836000191660001916815260200190815260200160002090805460018160011615610100020316600290046129359291906131d5565b50816000807f0100000000000000000000000000000000000000000000000000000000000000600019166000191681526020019081526020016000209080519060200190612984929190613155565b505b5050565b606060206040519080825280601f01601f1916602001820160405280156129c05781602001602082028038833980820191505090505b509050816020820152919050565b6000600a60006101000a81548160ff021916908360028111156129ed57fe5b021790555080600b9080519060200190612a08929190613155565b5050565b60008060008090505b6004811015612af8576008810260ff7f0100000000000000000000000000000000000000000000000000000000000000028583815181101515612a5457fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060020a9004821791508080600101915050612a15565b8192505050919050565b6000612b0d83612a0c565b9050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115612b7d57fe5b02179055508160076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209080519060200190612be7929190613155565b50612bf181612d42565b505050565b60006001836040518082805190602001908083835b602083101515612c305780518252602082019150602081019050602083039250612c0b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115612c7e57fe5b0217905550806002836040518082805190602001908083835b602083101515612cbc5780518252602082019150602081019050602083039250612c97565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190612d02929190613155565b50612d0c82612824565b5050565b606060405182741400000000000000000000000000000000000000001860148201526034810160405280915050919050565b60007c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415612fd257600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c01000000000000000000000000000000000000000000000000000000009004021790555080600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055505b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061301657803560ff1916838001178555613044565b82800160010185558215613044579182015b82811115613043578235825591602001919060010190613028565b5b509050613051919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061309657805160ff19168380011785556130c4565b828001600101855582156130c4579182015b828111156130c35782518255916020019190600101906130a8565b5b5090506130d1919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061311657805160ff1916838001178555613144565b82800160010185558215613144579182015b82811115613143578251825591602001919060010190613128565b5b509050613151919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061319657805160ff19168380011785556131c4565b828001600101855582156131c4579182015b828111156131c35782518255916020019190600101906131a8565b5b5090506131d1919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061320e578054855561324b565b8280016001018555821561324b57600052602060002091601f016020900482015b8281111561324a57825482559160010191906001019061322f565b5b509050613258919061325c565b5090565b61327e91905b8082111561327a576000816000905550600101613262565b5090565b905600a165627a7a723058207c38230b81180ba3e31c43529a6ce1803521c383ed5e28844c054a59afa495110029", - "deployedBytecode": "0x608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a20119f14610a6c57806321fed4d614610a975780632ed238dc14610ad257806336ff0ee514610b055780633956dc6b14610b345780634937c4f614610b4b578063586984a414610b9a5780635a3855ab14610be95780636193659414610c3057806367aad04a14610c83578063682b479714610cb657806368ab6f2f14610cf95780636f40075614610d345780637cd96ee414610d7b57806387abab6514610e0b5780639a1dc86b14610e465780639eaeed7514610e99578063aa788c5514610eec578063af21ac7814610f27578063b3901f2914610f54578063c6ee167f14610faf578063cf11ff5d14611002578063d6fe97781461105d578063d73ca0ac14611098578063d826f88f146110dd578063e211b8a5146110f4578063eb861f691461110b578063f07da22914611146578063f5afa9c1146111af575b6000606060003591506001600281111561018b57fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff1660028111156101ca57fe5b14156102b45760036000366040518083838082843782019150509250505090815260200160405180910390206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156102a55780601f1061027a576101008083540402835291602001916102a5565b820191906000526020600020905b81548152906001019060200180831161028857829003601f168201915b50509250505060405180910390fd5b6002808111156102c057fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff1660028111156102ff57fe5b141561030e5761030d6111f4565b5b60026000366040518083838082843782019150509250505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103c85780601f1061039d576101008083540402835291602001916103c8565b820191906000526020600020905b8154815290600101906020018083116103ab57829003601f168201915b505050505090506000815114156106d757600160028111156103e657fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16600281111561045057fe5b14156105655760086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156105565780601f1061052b57610100808354040283529160200191610556565b820191906000526020600020905b81548152906001019060200180831161053957829003601f168201915b50509250505060405180910390fd5b60028081111561057157fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff1660028111156105db57fe5b14156105ea576105e96111f4565b5b60076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106cf5780601f106106a4576101008083540402835291602001916106cf565b820191906000526020600020905b8154815290600101906020018083116106b257829003601f168201915b505050505090505b6000815114156108a357600160028111156106ee57fe5b600a60009054906101000a900460ff16600281111561070957fe5b14156107cf57600c6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156107c05780601f10610795576101008083540402835291602001916107c0565b820191906000526020600020905b8154815290600101906020018083116107a357829003601f168201915b50509250505060405180910390fd5b6002808111156107db57fe5b600a60009054906101000a900460ff1660028111156107f657fe5b1415610805576108046111f4565b5b600b8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561089b5780601f106108705761010080835404028352916020019161089b565b820191906000526020600020905b81548152906001019060200180831161087e57829003601f168201915b505050505090505b6001600d60008282540192505081905550600160096000600e548560405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600401925050506040516020818303038152906040526040518082805190602001908083835b6020831015156109575780518252602082019150602081019050602083039250610932565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060008282540192505081905550600160046000600e5460003660405160200180848152602001838380828437820191505093505050506040516020818303038152906040526040518082805190602001908083835b602083101515610a1457805182526020820191506020810190506020830392506109ef565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060008282540192505081905550805181602001f35b348015610a7857600080fd5b50610a81611219565b6040518082815260200191505060405180910390f35b348015610aa357600080fd5b50610ad0600480360381019080803590602001908201803590602001919091929391929390505050611223565b005b348015610ade57600080fd5b50610ae76112a9565b60405180826000191660001916815260200191505060405180910390f35b348015610b1157600080fd5b50610b32600480360381019080803515159060200190929190505050611344565b005b348015610b4057600080fd5b50610b4961136f565b005b348015610b5757600080fd5b50610b84600480360381019080803590602001908201803590602001919091929391929390505050611395565b6040518082815260200191505060405180910390f35b348015610ba657600080fd5b50610bd36004803603810190808035906020019082018035906020019190919293919293905050506114c3565b6040518082815260200191505060405180910390f35b348015610bf557600080fd5b50610c2e60048036038101908080359060200190820180359060200191909192939192939080351515906020019092919050505061157b565b005b348015610c3c57600080fd5b50610c816004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506115db565b005b348015610c8f57600080fd5b50610c9861164f565b60405180826000191660001916815260200191505060405180910390f35b348015610cc257600080fd5b50610cf7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611673565b005b348015610d0557600080fd5b50610d32600480360381019080803590602001908201803590602001919091929391929390505050611687565b005b348015610d4057600080fd5b50610d79600480360381019080803590602001908201803590602001919091929391929390803515159060200190929190505050611747565b005b348015610d8757600080fd5b50610d906117a7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dd0578082015181840152602081019050610db5565b50505050905090810190601f168015610dfd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e1757600080fd5b50610e446004803603810190808035906020019082018035906020019190919293919293905050506117e0565b005b348015610e5257600080fd5b50610e9760048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061181a565b005b348015610ea557600080fd5b50610eea60048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061193d565b005b348015610ef857600080fd5b50610f256004803603810190808035906020019082018035906020019190919293919293905050506119f9565b005b348015610f3357600080fd5b50610f5260048036038101908080359060200190929190505050611ab9565b005b348015610f6057600080fd5b50610fad600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611acd565b005b348015610fbb57600080fd5b50611000600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611b16565b005b34801561100e57600080fd5b5061105b600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b8a565b005b34801561106957600080fd5b50611096600480360381019080803590602001908201803590602001919091929391929390505050611bd3565b005b3480156110a457600080fd5b506110db60048036038101908080359060200190820180359060200191909192939192939080359060200190929190505050611c12565b005b3480156110e957600080fd5b506110f2611c5b565b005b34801561110057600080fd5b5061110961269b565b005b34801561111757600080fd5b506111446004803603810190808035906020019082018035906020019190919293919293905050506126e8565b005b34801561115257600080fd5b5061115b6127b7565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156111bb57600080fd5b506111f2600480360381019080803590602001908201803590602001919091929391929390803590602001909291905050506127db565b005b60005b600115611216576060600060c060008060066107d05a03f190506111f7565b50565b6000600d54905090565b60026001838360405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561126557fe5b02179055506112a582828080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b5050565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b60208310151561131457805182526020820191506020810190506020830392506112ef565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902081565b600081611352576000611355565b60015b60ff16905061136b6113668261298a565b6129ce565b5050565b6002600a60006101000a81548160ff0219169083600281111561138e57fe5b0217905550565b6000806113d384848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b905060096000600e548360405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600401925050506040516020818303038152906040526040518082805190602001908083835b6020831015156114765780518252602082019150602081019050602083039250611451565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019166000191681526020019081526020016000205491505092915050565b600060046000600e54858560405160200180848152602001838380828437820191505093505050506040516020818303038152906040526040518082805190602001908083835b60208310151561152f578051825260208201915060208101905060208303925061150a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002054905092915050565b60008161158957600061158c565b60015b60ff1690506115d584848080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506115d08361298a565b612b02565b50505050565b61164984848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612bf6565b50505050565b7f010000000000000000000000000000000000000000000000000000000000000081565b61168461167f82612d10565b6129ce565b50565b60006116c483838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600260066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561173457fe5b021790555061174281612d42565b505050565b600081611755576000611758565b60015b60ff1690506117a184848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061179c8361298a565b612b02565b50505050565b6040805190810160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525081565b6001600a60006101000a81548160ff021916908360028111156117ff57fe5b02179055508181600c9190611815929190612fd5565b505050565b600061185785858080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908360028111156118c757fe5b0217905550828260086000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020919061192c929190612fd5565b5061193681612d42565b5050505050565b600180858560405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561197e57fe5b021790555081816003868660405180838380828437820191505092505050908152602001604051809103902091906119b7929190612fd5565b506119f384848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b50505050565b6000611a3683838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115611aa657fe5b0217905550611ab481612d42565b505050565b611aca611ac58261298a565b6129ce565b50565b611b1183838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611b0c83612d10565b612b02565b505050565b611b8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612b02565b50505050565b611bce83838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611bc983612d10565b612b02565b505050565b611c0e82828080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506129ce565b5050565b611c5683838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611c518361298a565b612b02565b505050565b606060008060008060007f0100000000000000000000000000000000000000000000000000000000000000600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d305780601f10611d0557610100808354040283529160200191611d30565b820191906000526020600020905b815481529060010190602001808311611d1357829003601f168201915b50505050509350836040518082805190602001908083835b602083101515611d6d5780518252602082019150602081019050602083039250611d48565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902092505b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b602083101515611e085780518252602082019150602081019050602083039250611de3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191683600019161415156121505760006001856040518082805190602001908083835b602083101515611e7f5780518252602082019150602081019050602083039250611e5a565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115611ecd57fe5b021790555060206040519081016040528060008152506002856040518082805190602001908083835b602083101515611f1b5780518252602082019150602081019050602083039250611ef6565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611f61929190613055565b5060206040519081016040528060008152506003856040518082805190602001908083835b602083101515611fab5780518252602082019150602081019050602083039250611f86565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611ff19291906130d5565b5060008084600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120a05780601f10612075576101008083540402835291602001916120a0565b820191906000526020600020905b81548152906001019060200180831161208357829003601f168201915b505050505093506020604051908101604052806000815250600080856000191660001916815260200190815260200160002090805190602001906120e5929190613055565b50836040518082805190602001908083835b60208310151561211c57805182526020820191506020810190506020830392506120f7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250611d9d565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506000807f01000000000000000000000000000000000000000000000000000000000000006000191660001916815260200190815260200160002090805190602001906121d3929190613155565b50600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000291505b7f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151561256757819050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561234a57fe5b0217905550602060405190810160405280600081525060076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906123c4929190613055565b50602060405190810160405280600081525060086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020908051906020019061243a9291906130d5565b5060056000827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c010000000000000000000000000000000000000000000000000000000002915060007c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550612272565b7f0100000000000000000000000000000000000000000000000000000000000000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055506020604051908101604052806000815250600b9080519060200190612657929190613055565b506000600a60006101000a81548160ff0219169083600281111561267757fe5b02179055506000600d819055506001600e6000828254019250508190555050505050565b6001600a60006101000a81548160ff021916908360028111156126ba57fe5b02179055506020604051908101604052806000815250600c90805190602001906126e59291906130d5565b50565b600180838360405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561272957fe5b021790555060206040519081016040528060008152506003838360405180838380828437820191505092505050908152602001604051809103902090805190602001906127779291906130d5565b506127b382828080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b5050565b7f010000000000000000000000000000000000000000000000000000000000000081565b61281f83838080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061281a8361298a565b612b02565b505050565b6000816040518082805190602001908083835b60208310151561285c5780518252602082019150602081019050602083039250612837565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050600080600083600019166000191681526020019081526020016000208054600181600116156101000203166002900490501415612986576000807f010000000000000000000000000000000000000000000000000000000000000060001916600019168152602001908152602001600020600080836000191660001916815260200190815260200160002090805460018160011615610100020316600290046129359291906131d5565b50816000807f0100000000000000000000000000000000000000000000000000000000000000600019166000191681526020019081526020016000209080519060200190612984929190613155565b505b5050565b606060206040519080825280601f01601f1916602001820160405280156129c05781602001602082028038833980820191505090505b509050816020820152919050565b6000600a60006101000a81548160ff021916908360028111156129ed57fe5b021790555080600b9080519060200190612a08929190613155565b5050565b60008060008090505b6004811015612af8576008810260ff7f0100000000000000000000000000000000000000000000000000000000000000028583815181101515612a5457fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060020a9004821791508080600101915050612a15565b8192505050919050565b6000612b0d83612a0c565b9050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115612b7d57fe5b02179055508160076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209080519060200190612be7929190613155565b50612bf181612d42565b505050565b60006001836040518082805190602001908083835b602083101515612c305780518252602082019150602081019050602083039250612c0b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115612c7e57fe5b0217905550806002836040518082805190602001908083835b602083101515612cbc5780518252602082019150602081019050602083039250612c97565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190612d02929190613155565b50612d0c82612824565b5050565b606060405182741400000000000000000000000000000000000000001860148201526034810160405280915050919050565b60007c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415612fd257600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c01000000000000000000000000000000000000000000000000000000009004021790555080600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055505b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061301657803560ff1916838001178555613044565b82800160010185558215613044579182015b82811115613043578235825591602001919060010190613028565b5b509050613051919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061309657805160ff19168380011785556130c4565b828001600101855582156130c4579182015b828111156130c35782518255916020019190600101906130a8565b5b5090506130d1919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061311657805160ff1916838001178555613144565b82800160010185558215613144579182015b82811115613143578251825591602001919060010190613128565b5b509050613151919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061319657805160ff19168380011785556131c4565b828001600101855582156131c4579182015b828111156131c35782518255916020019190600101906131a8565b5b5090506131d1919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061320e578054855561324b565b8280016001018555821561324b57600052602060002091601f016020900482015b8281111561324a57825482559160010191906001019061322f565b5b509050613258919061325c565b5090565b61327e91905b8082111561327a576000816000905550600101613262565b5090565b905600a165627a7a723058207c38230b81180ba3e31c43529a6ce1803521c383ed5e28844c054a59afa495110029", - "sourceMap": "3453:8735:25:-;;;4427:135;8:9:-1;5:2;;;30:1;27;20:12;5:2;4427:135:25;4486:14;;;;;;;;;;;;;;;;;;4452:13;:31;4466:16;4452:31;;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:::i;:::-;;4540:18;4504:13;:33;4518:18;4504:33;;;;;;;;;;;;;;;;;;:54;;;;;;;;;;;;;;;;;;;3453:8735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "3453:8735:25:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11012:15;11305:19;11070:1;11057:15;11045:27;;11158:15;11127:46;;;;;;;;:17;11145:8;;11127:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;11123:101;;;11187:21;11209:8;;11187:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11180:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11123:101;11262:17;11231:48;;;;;;;;:17;11249:8;;11231:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;;;11227:75;;;11286:11;:9;:11::i;:::-;11227:75;11327:20;11348:8;;11327:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11305:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11419:1;11402:6;:13;:18;11398:262;;;11462:15;11431:46;;;;;;;;:17;:27;11449:8;11431:27;;;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;11427:104;;;11492:22;:32;11515:8;11492:32;;;;;;;;;;;;;;;;;11485:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11427:104;11570:17;11539:48;;;;;;;;:17;:27;11557:8;11539:27;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;;;11535:77;;;11595:11;:9;:11::i;:::-;11535:77;11625:20;:30;11646:8;11625:30;;;;;;;;;;;;;;;;;11616:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11398:262;11722:1;11705:6;:13;:18;11701:218;;;11754:15;11734:35;;;;;;;;:16;;;;;;;;;;;:35;;;;;;;;;11730:82;;;11784:21;11777:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11730:82;11840:17;11820:37;;;;;;;;:16;;;;;;;;;;;:37;;;;;;;;;11816:66;;;11865:11;:9;:11::i;:::-;11816:66;11895:19;11886:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11701:218;11961:1;11946:11;;:16;;;;;;;;;;;12040:1;11966:19;:70;12013:10;;12025:8;11996:38;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11996:38:25;;;11986:49;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;11986:49:25;;;;;;;;;;;;;;;;11966:70;;;;;;;;;;;;;;;;;;:75;;;;;;;;;;;12119:1;12045:19;:70;12092:10;;12104:8;;12075:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12075:38:25;;;12065:49;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;12065:49:25;;;;;;;;;;;;;;;;12045:70;;;;;;;;;;;;;;;;;;:75;;;;;;;;;;;12171:6;12165:13;12156:6;12150:4;12146:17;12139:40;8488:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8488:77:25;;;;;;;;;;;;;;;;;;;;;;;8174:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8174:133:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3642:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3642:71:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5248:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5248:126:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;5839:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5839:84:25;;;;;;8568:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8568:192:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8763:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8763:153:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6227:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6227:152:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6113:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6113:111:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3541:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3541:50:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5479:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5479:107:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;8310:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8310:175:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6985:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6985:150:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3594:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3594:45:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3594:45:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5699:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5699:137:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7931:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7931:240:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7734:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7734:194:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7562:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7562:169:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5377:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5377:99:25;;;;;;;;;;;;;;;;;;;;;;;;;;6509:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6509:133:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6876:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6876:106:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7263:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7263:131:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5163:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5163:82:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6382:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6382:124:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8919:1291;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8919:1291:25;;;;;;5589:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5589:107:25;;;;;;7397:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7397:162:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3716:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3716:51:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7138:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7138:122:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10213:186;10263:6;10246:150;10252:4;10246:150;;;10382:4;10377:3;10371:4;10366:3;10363:1;10360;10353:4;10348:3;10344:14;10339:48;10334:53;;10283:109;;;10213:186;:::o;8488:77::-;8533:4;8550:11;;8543:18;;8488:77;:::o;8174:133::-;8259:17;8233;8251:4;;8233:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;8280:23;8298:4;;8280:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;:23::i;:::-;8174:133;;:::o;3642:71::-;3698:14;;;;;;;;;;;;;;;;;;3688:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;3688:25:25;;;;;;;;;;;;;;;;3642:71;:::o;5248:126::-;5304:9;5316:8;:16;;5331:1;5316:16;;;5327:1;5316:16;5304:28;;;;5336:34;5352:17;5364:4;5352:11;:17::i;:::-;5336:15;:34::i;:::-;5248:126;;:::o;5839:84::-;5902:17;5883:16;;:36;;;;;;;;;;;;;;;;;;;;;;;;5839:84::o;8568:192::-;8632:4;8642:13;8658:19;8672:4;;8658:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:19::i;:::-;8642:35;;8688:19;:68;8735:10;;8747:6;8718:36;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8718:36:25;;;8708:47;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;8708:47:25;;;;;;;;;;;;;;;;8688:68;;;;;;;;;;;;;;;;;;8681:75;;8568:192;;;;;:::o;8763:153::-;8829:4;8846:19;:66;8893:10;;8905:4;;8876:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8876:34:25;;;8866:45;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;8866:45:25;;;;;;;;;;;;;;;;8846:66;;;;;;;;;;;;;;;;;;8839:73;;8763:153;;;;:::o;6227:152::-;6300:9;6312:8;:16;;6327:1;6312:16;;;6323:1;6312:16;6300:28;;;;6332:43;6351:4;;6332:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6357:17;6369:4;6357:11;:17::i;:::-;6332:18;:43::i;:::-;6227:152;;;;:::o;6113:111::-;6184:36;6205:4;;6184:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6211:8;;6184:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:20;:36::i;:::-;6113:111;;;;:::o;3541:50::-;;;:::o;5479:107::-;5541:41;5557:24;5572:8;5557:14;:24::i;:::-;5541:15;:41::i;:::-;5479:107;:::o;8310:175::-;8367:13;8383:19;8397:4;;8383:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:19::i;:::-;8367:35;;8434:17;8406;:25;8424:6;8406:25;;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;;;;;;;8455:25;8473:6;8455:17;:25::i;:::-;8310:175;;;:::o;6985:150::-;7056:9;7068:8;:16;;7083:1;7068:16;;;7079:1;7068:16;7056:28;;;;7088:43;7107:4;;7088:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7113:17;7125:4;7113:11;:17::i;:::-;7088:18;:43::i;:::-;6985:150;;;;:::o;3594:45::-;;;;;;;;;;;;;;;;;;;;:::o;5699:137::-;5782:15;5763:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;5825:7;;5801:21;:31;;;;;;;:::i;:::-;;5699:137;;:::o;7931:240::-;8010:13;8026:19;8040:4;;8026:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:19::i;:::-;8010:35;;8077:15;8049:17;:25;8067:6;8049:25;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;8129:7;;8096:22;:30;8119:6;8096:30;;;;;;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;8140:25;8158:6;8140:17;:25::i;:::-;7931:240;;;;;:::o;7734:194::-;7841:15;7815:17;7833:4;;7815:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;;;;;;7890:7;;7860:21;7882:4;;7860:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;7901:23;7919:4;;7901:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;:23::i;:::-;7734:194;;;;:::o;7562:169::-;7614:13;7630:19;7644:4;;7630:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:19::i;:::-;7614:35;;7681:15;7653:17;:25;7671:6;7653:25;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;7700:25;7718:6;7700:17;:25::i;:::-;7562:169;;;:::o;5377:99::-;5433:38;5449:21;5461:8;5449:11;:21::i;:::-;5433:15;:38::i;:::-;5377:99;:::o;6509:133::-;6588:50;6607:4;;6588:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6613:24;6628:8;6613:14;:24::i;:::-;6588:18;:50::i;:::-;6509:133;;;:::o;6876:106::-;6944:34;6963:4;;6944:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6969:8;;6944:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:18;:34::i;:::-;6876:106;;;;:::o;7263:131::-;7340:50;7359:4;;7340:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7365:24;7380:8;7365:14;:24::i;:::-;7340:18;:50::i;:::-;7263:131;;;:::o;5163:82::-;5216:25;5232:8;;5216:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;:25::i;:::-;5163:82;;:::o;6382:124::-;6455:47;6474:4;;6455:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6480:21;6492:8;6480:11;:21::i;:::-;6455:18;:47::i;:::-;6382:124;;;:::o;8919:1291::-;8984:21;9043:16;9613:18;9717:21;9008:13;:31;9022:16;9008:31;;;;;;;;;;;;;;;;;8984:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9072:8;9062:19;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;9062:19:25;;;;;;;;;;;;;;;;9043:38;;9114:394;3698:14;;;;;;;;;;;;;;;;;;3688:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;3688:25:25;;;;;;;;;;;;;;;;9120:31;;;:8;:31;;;;;9114:394;;;9214:15;9184:17;9202:8;9184:27;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;9184:27:25;;;;;;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;;;;;;;9234:38;;;;;;;;;;;;;:20;9255:8;9234:30;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;9234:30:25;;;;;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;:::i;:::-;;9277:36;;;;;;;;;;;;;:21;9299:8;9277:31;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;9277:31:25;;;;;;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;:::i;:::-;;9359:13;:23;9373:8;9359:23;;;;;;;;;;;;;;;;;9348:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9417:28;;;;;;;;;;;;;:13;:23;9431:8;9417:23;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;:::i;:::-;;9494:8;9484:19;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;9484:19:25;;;;;;;;;;;;;;;;9473:30;;9114:394;;;9561:14;;;;;;;;;;;;;;;;;;9527:13;:31;9541:16;9527:31;;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:::i;:::-;;9634:13;:33;9648:18;9634:33;;;;;;;;;;;;;;;;;;;;;;;;;;;9613:54;;9671:357;9692:18;9677:33;;;:11;:33;;;;;9671:357;;;9741:11;9717:35;;9793:15;9757:17;:33;9775:14;9757:33;;;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;;;;;;;9813:44;;;;;;;;;;;;;:20;:36;9834:14;9813:36;;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;:::i;:::-;;9862:43;;;;;;;;;;;;;:22;:38;9885:14;9862:38;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;:::i;:::-;;9924:13;:29;9938:14;9924:29;;;;;;;;;;;;;;;;;;;;;;;;;;;9910:43;;10020:3;9988:35;;:13;:29;10002:14;9988:29;;;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;;9671:357;;;10083:18;10047:13;:33;10061:18;10047:33;;;;;;;;;;;;;;;;;;:54;;;;;;;;;;;;;;;;;;;10106:24;;;;;;;;;;;;;:19;:24;;;;;;;;;;;;:::i;:::-;;10153:15;10134:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;10186:1;10172:11;:15;;;;10205:1;10191:10;;:15;;;;;;;;;;;8919:1291;;;;:::o;5589:107::-;5647:15;5628:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;5666:26;;;;;;;;;;;;;:21;:26;;;;;;;;;;;;:::i;:::-;;5589:107::o;7397:162::-;7477:15;7451:17;7469:4;;7451:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;;;;;;7496:32;;;;;;;;;;;;;:21;7518:4;;7496:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;:::i;:::-;;7532:23;7550:4;;7532:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;:23::i;:::-;7397:162;;:::o;3716:51::-;;;:::o;7138:122::-;7209:47;7228:4;;7209:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:21;7246:8;7234:11;:21::i;:::-;7209:18;:47::i;:::-;7138:122;;;:::o;4565:250::-;4623:16;4652:4;4642:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;4642:15:25;;;;;;;;;;;;;;;;4623:34;;4699:1;4665:13;:23;4679:8;4665:23;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;:35;4661:151;;;4733:13;:31;4747:16;4733:31;;;;;;;;;;;;;;;;;4707:13;:23;4721:8;4707:23;;;;;;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4803:4;4769:13;:31;4783:16;4769:31;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;:::i;:::-;;4661:151;4565:250;;:::o;10846:131::-;10900:7;10930:2;10920:13;;;;;;;;;;;;;;;;;;;;;;;;;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;10920:13:25;;;;10916:17;;10970:1;10965:2;10962:1;10958:10;10951:21;10949:25;;;:::o;5034:126::-;5107:15;5088:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;5148:8;5126:19;:30;;;;;;;;;;;;:::i;:::-;;5034:126;:::o;10402:184::-;10456:6;10470:10;10491:6;10500:1;10491:10;;10486:81;10507:1;10503;:5;10486:81;;;10558:1;10554;:5;10544:4;10537:11;;:1;10539;10537:4;;;;;;;;;;;;;;;;;;;;:11;10530:19;;;:30;;;;;;;;10523:37;;;;10510:3;;;;;;;10486:81;;;10579:3;10572:10;;10402:184;;;;;:::o;6645:228::-;6713:13;6729:19;6743:4;6729:13;:19::i;:::-;6713:35;;6780:15;6752:17;:25;6770:6;6752:25;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;6830:8;6799:20;:28;6820:6;6799:28;;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;:::i;:::-;;6842:25;6860:6;6842:17;:25::i;:::-;6645:228;;;:::o;5926:184::-;6023:15;5997:17;6015:4;5997:23;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;5997:23:25;;;;;;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;;;;;;6071:8;6042:20;6063:4;6042:26;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;6042:26:25;;;;;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;:::i;:::-;;6083:23;6101:4;6083:17;:23::i;:::-;5926:184;;:::o;10589:254::-;10646:7;10696:4;10690:11;10780:1;10734:44;10730:52;10725:2;10722:1;10718:10;10711:72;10813:2;10810:1;10806:10;10800:4;10793:24;10832:1;10827:6;;10670:170;;;;:::o;4818:213::-;4905:3;4878:30;;:13;:23;4892:8;4878:23;;;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;;4874:154;;;4941:13;:33;4955:18;4941:33;;;;;;;;;;;;;;;;;;;;;;;;;;;4915:13;:23;4929:8;4915:23;;;;;;;;;;;;;;;;;;:59;;;;;;;;;;;;;;;;;;;5015:8;4979:13;:33;4993:18;4979:33;;;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;;4874:154;4818:213;:::o;3453:8735::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.4.23;\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 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 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 method, bytes response) external;\n\tfunction givenMethodReturnBool(bytes method, bool response) external;\n\tfunction givenMethodReturnUint(bytes method, uint response) external;\n\tfunction givenMethodReturnAddress(bytes method, address response) external;\n\n\tfunction givenMethodRevert(bytes method) external;\n\tfunction givenMethodRevertWithMessage(bytes method, string message) external;\n\tfunction givenMethodRunOutOfGas(bytes 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 calldata 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, bytes response) external;\n\tfunction givenCalldataReturnBool(bytes calldata, bool response) external;\n\tfunction givenCalldataReturnUint(bytes calldata, uint response) external;\n\tfunction givenCalldataReturnAddress(bytes calldata, address response) external;\n\n\tfunction givenCalldataRevert(bytes calldata) external;\n\tfunction givenCalldataRevertWithMessage(bytes calldata, string message) external;\n\tfunction givenCalldataRunOutOfGas(bytes calldata) 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 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 calldata ABI encoded calldata (methodId and arguments)\n\t */\n\tfunction invocationCountForCalldata(bytes calldata) 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 response) internal {\n\t\tfallbackMockType = MockType.Return;\n\t\tfallbackExpectation = response;\n\t}\n\n\tfunction givenAnyReturn(bytes 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 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 call, bytes response) private {\n\t\tcalldataMockTypes[call] = MockType.Return;\n\t\tcalldataExpectations[call] = response;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenCalldataReturn(bytes call, bytes response) external {\n\t\t_givenCalldataReturn(call, response);\n\t}\n\n\tfunction givenCalldataReturnBool(bytes call, bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenMethodReturn(call, uintToBytes(flag));\n\t}\n\n\tfunction givenCalldataReturnUint(bytes call, uint response) external {\n\t\t_givenMethodReturn(call, uintToBytes(response));\n\t}\n\n\tfunction givenCalldataReturnAddress(bytes call, address response) external {\n\t\t_givenMethodReturn(call, addressToBytes(response));\n\t}\n\n\tfunction _givenMethodReturn(bytes call, bytes 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 call, bytes response) external {\n\t\t_givenMethodReturn(call, response);\n\t}\n\n\tfunction givenMethodReturnBool(bytes 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 call, uint response) external {\n\t\t_givenMethodReturn(call, uintToBytes(response));\n\t}\n\n\tfunction givenMethodReturnAddress(bytes call, address response) external {\n\t\t_givenMethodReturn(call, addressToBytes(response));\n\t}\n\n\tfunction givenCalldataRevert(bytes call) external {\n\t\tcalldataMockTypes[call] = MockType.Revert;\n\t\tcalldataRevertMessage[call] = \"\";\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRevert(bytes 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 call, string message) external {\n\t\tcalldataMockTypes[call] = MockType.Revert;\n\t\tcalldataRevertMessage[call] = message;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRevertWithMessage(bytes call, string 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 call) external {\n\t\tcalldataMockTypes[call] = MockType.OutOfGas;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRunOutOfGas(bytes 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 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 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 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 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 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", + "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": [ - 4000 + 4351 ], "MockInterface": [ - 3021 + 3372 ] }, - "id": 4001, + "id": 4352, "nodeType": "SourceUnit", "nodes": [ { - "id": 2877, + "id": 3228, "literals": [ "solidity", "^", - "0.4", - ".23" + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:23:26" }, { "baseContracts": [], @@ -490,9 +490,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 3021, + "id": 3372, "linearizedBaseContracts": [ - 3021 + 3372 ], "name": "MockInterface", "nodeType": "ContractDefinition", @@ -500,35 +500,34 @@ { "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": 2882, + "id": 3233, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 2880, + "id": 3231, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2879, + "id": 3230, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2882, - "src": "358:14:25", + "scope": 3233, + "src": "357:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2878, + "id": 3229, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "358:5:25", + "src": "357:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -538,17 +537,16 @@ "visibility": "internal" } ], - "src": "357:16:25" + "src": "356:25:26" }, - "payable": false, "returnParameters": { - "id": 2881, + "id": 3232, "nodeType": "ParameterList", "parameters": [], - "src": "382:0:25" + "src": "390:0:26" }, - "scope": 3021, - "src": "334:49:25", + "scope": 3372, + "src": "333:58:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -556,24 +554,23 @@ { "body": null, "documentation": null, - "id": 2887, + "id": 3238, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturnBool", "nodeType": "FunctionDefinition", "parameters": { - "id": 2885, + "id": 3236, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2884, + "id": 3235, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2887, - "src": "413:13:25", + "scope": 3238, + "src": "421:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -581,10 +578,10 @@ "typeString": "bool" }, "typeName": { - "id": 2883, + "id": 3234, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "413:4:25", + "src": "421:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -594,17 +591,16 @@ "visibility": "internal" } ], - "src": "412:15:25" + "src": "420:15:26" }, - "payable": false, "returnParameters": { - "id": 2886, + "id": 3237, "nodeType": "ParameterList", "parameters": [], - "src": "436:0:25" + "src": "444:0:26" }, - "scope": 3021, - "src": "385:52:25", + "scope": 3372, + "src": "393:52:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -612,24 +608,23 @@ { "body": null, "documentation": null, - "id": 2892, + "id": 3243, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturnUint", "nodeType": "FunctionDefinition", "parameters": { - "id": 2890, + "id": 3241, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2889, + "id": 3240, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2892, - "src": "467:13:25", + "scope": 3243, + "src": "475:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -637,10 +632,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2888, + "id": 3239, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "467:4:25", + "src": "475:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -650,17 +645,16 @@ "visibility": "internal" } ], - "src": "466:15:25" + "src": "474:15:26" }, - "payable": false, "returnParameters": { - "id": 2891, + "id": 3242, "nodeType": "ParameterList", "parameters": [], - "src": "490:0:25" + "src": "498:0:26" }, - "scope": 3021, - "src": "439:52:25", + "scope": 3372, + "src": "447:52:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -668,24 +662,23 @@ { "body": null, "documentation": null, - "id": 2897, + "id": 3248, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturnAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 2895, + "id": 3246, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2894, + "id": 3245, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2897, - "src": "524:16:25", + "scope": 3248, + "src": "532:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -693,10 +686,11 @@ "typeString": "address" }, "typeName": { - "id": 2893, + "id": 3244, "name": "address", "nodeType": "ElementaryTypeName", - "src": "524:7:25", + "src": "532:7:26", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -706,17 +700,16 @@ "visibility": "internal" } ], - "src": "523:18:25" + "src": "531:18:26" }, - "payable": false, "returnParameters": { - "id": 2896, + "id": 3247, "nodeType": "ParameterList", "parameters": [], - "src": "550:0:25" + "src": "558:0:26" }, - "scope": 3021, - "src": "493:58:25", + "scope": 3372, + "src": "501:58:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -724,28 +717,26 @@ { "body": null, "documentation": null, - "id": 2900, + "id": 3251, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyRevert", "nodeType": "FunctionDefinition", "parameters": { - "id": 2898, + "id": 3249, "nodeType": "ParameterList", "parameters": [], - "src": "577:2:25" + "src": "585:2:26" }, - "payable": false, "returnParameters": { - "id": 2899, + "id": 3250, "nodeType": "ParameterList", "parameters": [], - "src": "588:0:25" + "src": "596:0:26" }, - "scope": 3021, - "src": "554:35:25", + "scope": 3372, + "src": "562:35:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -753,35 +744,34 @@ { "body": null, "documentation": null, - "id": 2905, + "id": 3256, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyRevertWithMessage", "nodeType": "FunctionDefinition", "parameters": { - "id": 2903, + "id": 3254, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2902, + "id": 3253, "name": "message", "nodeType": "VariableDeclaration", - "scope": 2905, - "src": "626:14:25", + "scope": 3256, + "src": "634:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string" }, "typeName": { - "id": 2901, + "id": 3252, "name": "string", "nodeType": "ElementaryTypeName", - "src": "626:6:25", + "src": "634:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -791,17 +781,16 @@ "visibility": "internal" } ], - "src": "625:16:25" + "src": "633:25:26" }, - "payable": false, "returnParameters": { - "id": 2904, + "id": 3255, "nodeType": "ParameterList", "parameters": [], - "src": "650:0:25" + "src": "667:0:26" }, - "scope": 3021, - "src": "591:60:25", + "scope": 3372, + "src": "599:69:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -809,28 +798,26 @@ { "body": null, "documentation": null, - "id": 2908, + "id": 3259, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyRunOutOfGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 2906, + "id": 3257, "nodeType": "ParameterList", "parameters": [], - "src": "681:2:25" + "src": "698:2:26" }, - "payable": false, "returnParameters": { - "id": 2907, + "id": 3258, "nodeType": "ParameterList", "parameters": [], - "src": "692:0:25" + "src": "709:0:26" }, - "scope": 3021, - "src": "653:40:25", + "scope": 3372, + "src": "670:40:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -838,35 +825,34 @@ { "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": 2915, + "id": 3266, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenMethodReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 2913, + "id": 3264, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2910, + "id": 3261, "name": "method", "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1222:12:25", + "scope": 3266, + "src": "1239:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2909, + "id": 3260, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1222:5:25", + "src": "1239:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -877,22 +863,22 @@ }, { "constant": false, - "id": 2912, + "id": 3263, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1236:14:25", + "scope": 3266, + "src": "1262:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2911, + "id": 3262, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1236:5:25", + "src": "1262:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -902,17 +888,16 @@ "visibility": "internal" } ], - "src": "1221:30:25" + "src": "1238:48:26" }, - "payable": false, "returnParameters": { - "id": 2914, + "id": 3265, "nodeType": "ParameterList", "parameters": [], - "src": "1260:0:25" + "src": "1295:0:26" }, - "scope": 3021, - "src": "1195:66:25", + "scope": 3372, + "src": "1212:84:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -920,35 +905,34 @@ { "body": null, "documentation": null, - "id": 2922, + "id": 3273, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenMethodReturnBool", "nodeType": "FunctionDefinition", "parameters": { - "id": 2920, + "id": 3271, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2917, + "id": 3268, "name": "method", "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1294:12:25", + "scope": 3273, + "src": "1329:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2916, + "id": 3267, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1294:5:25", + "src": "1329:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -959,11 +943,11 @@ }, { "constant": false, - "id": 2919, + "id": 3270, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1308:13:25", + "scope": 3273, + "src": "1352:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -971,10 +955,10 @@ "typeString": "bool" }, "typeName": { - "id": 2918, + "id": 3269, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1308:4:25", + "src": "1352:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -984,17 +968,16 @@ "visibility": "internal" } ], - "src": "1293:29:25" + "src": "1328:38:26" }, - "payable": false, "returnParameters": { - "id": 2921, + "id": 3272, "nodeType": "ParameterList", "parameters": [], - "src": "1331:0:25" + "src": "1375:0:26" }, - "scope": 3021, - "src": "1263:69:25", + "scope": 3372, + "src": "1298:78:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -1002,4409 +985,12 @@ { "body": null, "documentation": null, - "id": 2929, + "id": 3280, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenMethodReturnUint", "nodeType": "FunctionDefinition", - "parameters": { - "id": 2927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2924, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1365:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2923, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1365:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2926, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1379:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2925, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1379:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1364:29:25" - }, - "payable": false, - "returnParameters": { - "id": 2928, - "nodeType": "ParameterList", - "parameters": [], - "src": "1402:0:25" - }, - "scope": 3021, - "src": "1334:69:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2936, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2934, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2931, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1439:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2930, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1439:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2933, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1453:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2932, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1453:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1438:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2935, - "nodeType": "ParameterList", - "parameters": [], - "src": "1479:0:25" - }, - "scope": 3021, - "src": "1405:75:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2941, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2939, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2938, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2941, - "src": "1510:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2937, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1510:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1509:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2940, - "nodeType": "ParameterList", - "parameters": [], - "src": "1532:0:25" - }, - "scope": 3021, - "src": "1483:50:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2948, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2943, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1573:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2942, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1573:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2945, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1587:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2944, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1587:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1572:30:25" - }, - "payable": false, - "returnParameters": { - "id": 2947, - "nodeType": "ParameterList", - "parameters": [], - "src": "1611:0:25" - }, - "scope": 3021, - "src": "1535:77:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2953, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2950, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2953, - "src": "1646:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1646:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1645:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2952, - "nodeType": "ParameterList", - "parameters": [], - "src": "1668:0:25" - }, - "scope": 3021, - "src": "1614:55:25", - "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 calldata ABI encoded calldata (methodId and arguments)\n@param response ABI encoded response that will be returned if contract is invoked with calldata", - "id": 2960, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2958, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2955, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2089:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2954, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2089:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2957, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2105:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2956, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2105:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2088:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2959, - "nodeType": "ParameterList", - "parameters": [], - "src": "2129:0:25" - }, - "scope": 3021, - "src": "2060:70:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2967, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2962, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2165:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2961, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2165:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2964, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2963, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2164:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2966, - "nodeType": "ParameterList", - "parameters": [], - "src": "2204:0:25" - }, - "scope": 3021, - "src": "2132:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2974, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2969, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2240:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2968, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2240:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2971, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2256:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2970, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2256:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2239:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2973, - "nodeType": "ParameterList", - "parameters": [], - "src": "2279:0:25" - }, - "scope": 3021, - "src": "2207:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2981, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2979, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2976, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2318:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2975, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2318:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2978, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2334:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2334:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2317:34:25" - }, - "payable": false, - "returnParameters": { - "id": 2980, - "nodeType": "ParameterList", - "parameters": [], - "src": "2360:0:25" - }, - "scope": 3021, - "src": "2282:79:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2986, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2983, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2986, - "src": "2393:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2982, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2393:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2392:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2985, - "nodeType": "ParameterList", - "parameters": [], - "src": "2417:0:25" - }, - "scope": 3021, - "src": "2364:54:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2993, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2988, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2460:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2987, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2460:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2990, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2476:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2989, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2476:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2459:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [], - "src": "2500:0:25" - }, - "scope": 3021, - "src": "2420:81:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2998, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2996, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2995, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2998, - "src": "2537:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2994, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2537:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2536:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2997, - "nodeType": "ParameterList", - "parameters": [], - "src": "2561:0:25" - }, - "scope": 3021, - "src": "2503:59:25", - "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": 3003, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2999, - "nodeType": "ParameterList", - "parameters": [], - "src": "2691:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3001, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3003, - "src": "2712:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3000, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2712:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2711:6:25" - }, - "scope": 3021, - "src": "2667:51:25", - "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": 3010, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3006, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3005, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3005:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3004, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3005:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3004:14:25" - }, - "payable": false, - "returnParameters": { - "id": 3009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3008, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3037:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3007, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3037:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3036:6:25" - }, - "scope": 3021, - "src": "2971:72:25", - "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 calldata ABI encoded calldata (methodId and arguments)", - "id": 3017, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3263:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3011, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3263:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3262:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3015, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3297:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3014, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3297:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3296:6:25" - }, - "scope": 3021, - "src": "3227:76:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Resets all mocked methods and invocation counts.", - "id": 3020, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3018, - "nodeType": "ParameterList", - "parameters": [], - "src": "3389:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3019, - "nodeType": "ParameterList", - "parameters": [], - "src": "3400:0:25" - }, - "scope": 3021, - "src": "3375:26:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4001, - "src": "26:3377:25" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3022, - "name": "MockInterface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3021, - "src": "3478:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MockInterface_$3021", - "typeString": "contract MockInterface" - } - }, - "id": 3023, - "nodeType": "InheritanceSpecifier", - "src": "3478:13:25" - } - ], - "contractDependencies": [ - 3021 - ], - "contractKind": "contract", - "documentation": "Implementation of the MockInterface.", - "fullyImplemented": true, - "id": 4000, - "linearizedBaseContracts": [ - 4000, - 3021 - ], - "name": "MockContract", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "MockContract.MockType", - "id": 3027, - "members": [ - { - "id": 3024, - "name": "Return", - "nodeType": "EnumValue", - "src": "3511:6:25" - }, - { - "id": 3025, - "name": "Revert", - "nodeType": "EnumValue", - "src": "3519:6:25" - }, - { - "id": 3026, - "name": "OutOfGas", - "nodeType": "EnumValue", - "src": "3527:8:25" - } - ], - "name": "MockType", - "nodeType": "EnumDefinition", - "src": "3495:42:25" - }, - { - "constant": true, - "id": 3030, - "name": "MOCKS_LIST_START", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3541:50:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3028, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3541:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3584:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3033, - "name": "MOCKS_LIST_END", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3594:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes" - }, - "typeName": { - "id": 3031, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3594:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786666", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3633:6:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", - "typeString": "literal_string \"0xff\"" - }, - "value": "0xff" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3038, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3642:71:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3034, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3642:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3036, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "3698:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - ], - "id": 3035, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3688:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3688:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3041, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3716:51:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3039, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3716:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3760:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 3045, - "name": "calldataMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3832:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "typeName": { - "id": 3044, - "keyType": { - "id": 3042, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3840:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "3832:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "valueType": { - "id": 3043, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3851:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3049, - "name": "calldataMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3874:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "typeName": { - "id": 3048, - "keyType": { - "id": 3046, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3882:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3874:26:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3047, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "3891:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3053, - "name": "calldataExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3921:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "typeName": { - "id": 3052, - "keyType": { - "id": 3050, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3929:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3921:23:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "valueType": { - "id": 3051, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3938:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3057, - "name": "calldataRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3968:46:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "typeName": { - "id": 3056, - "keyType": { - "id": 3054, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3976:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3968:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "valueType": { - "id": 3055, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3985:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "calldataInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4017:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3060, - "keyType": { - "id": 3058, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4025:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4017:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3059, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4036:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3065, - "name": "methodIdMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4065:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "typeName": { - "id": 3064, - "keyType": { - "id": 3062, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4073:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4065:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "valueType": { - "id": 3063, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4083:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3069, - "name": "methodIdMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4107:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "typeName": { - "id": 3068, - "keyType": { - "id": 3066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4115:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4107:27:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3067, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4125:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3073, - "name": "methodIdExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4155:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "typeName": { - "id": 3072, - "keyType": { - "id": 3070, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4163:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4155:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "valueType": { - "id": 3071, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4173:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3077, - "name": "methodIdRevertMessages", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4203:48:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "typeName": { - "id": 3076, - "keyType": { - "id": 3074, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4211:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4203:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "valueType": { - "id": 3075, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4221:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3081, - "name": "methodIdInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4254:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3080, - "keyType": { - "id": 3078, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4262:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4254:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3079, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4273:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3083, - "name": "fallbackMockType", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4302:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "typeName": { - "contractScope": null, - "id": 3082, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4302:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3085, - "name": "fallbackExpectation", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4330:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes" - }, - "typeName": { - "id": 3084, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4330:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3087, - "name": "fallbackRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4358:28:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3086, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4358:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3089, - "name": "invocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4389:16:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3088, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4389:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3091, - "name": "resetCount", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4408:15:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3090, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4408:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3106, - "nodeType": "Block", - "src": "4448:114:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3094, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4452:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3096, - "indexExpression": { - "argumentTypes": null, - "id": 3095, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4466:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4452:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3097, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "4486:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "4452:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3099, - "nodeType": "ExpressionStatement", - "src": "4452:48:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3100, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4504:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3102, - "indexExpression": { - "argumentTypes": null, - "id": 3101, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4518:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4504:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3103, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4540:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4504:54:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3105, - "nodeType": "ExpressionStatement", - "src": "4504:54:25" - } - ] - }, - "documentation": null, - "id": 3107, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3092, - "nodeType": "ParameterList", - "parameters": [], - "src": "4438:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3093, - "nodeType": "ParameterList", - "parameters": [], - "src": "4448:0:25" - }, - "scope": 4000, - "src": "4427:135:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3140, - "nodeType": "Block", - "src": "4619:196:25", - "statements": [ - { - "assignments": [ - 3113 - ], - "declarations": [ - { - "constant": false, - "id": 3113, - "name": "callHash", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4623:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3112, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4623:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3117, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3115, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4652:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3114, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4642:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4642:15:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4623:34:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3118, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4665:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3120, - "indexExpression": { - "argumentTypes": null, - "id": 3119, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4679:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4665:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3121, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4665:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4699:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4665:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3139, - "nodeType": "IfStatement", - "src": "4661:151:25", - "trueBody": { - "id": 3138, - "nodeType": "Block", - "src": "4702:110:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3124, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4707:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3126, - "indexExpression": { - "argumentTypes": null, - "id": 3125, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4721:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4707:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3127, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4733:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3129, - "indexExpression": { - "argumentTypes": null, - "id": 3128, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4747:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4733:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "4707:57:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3131, - "nodeType": "ExpressionStatement", - "src": "4707:57:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3132, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4769:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3134, - "indexExpression": { - "argumentTypes": null, - "id": 3133, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4783:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4769:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3135, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4803:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "4769:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3137, - "nodeType": "ExpressionStatement", - "src": "4769:38:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3141, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackCalldataMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3109, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4592:17:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3108, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4592:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4591:19:25" - }, - "payable": false, - "returnParameters": { - "id": 3111, - "nodeType": "ParameterList", - "parameters": [], - "src": "4619:0:25" - }, - "scope": 4000, - "src": "4565:250:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3167, - "nodeType": "Block", - "src": "4870:161:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3146, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4878:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3148, - "indexExpression": { - "argumentTypes": null, - "id": 3147, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4892:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4878:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4905:3:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "4878:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3166, - "nodeType": "IfStatement", - "src": "4874:154:25", - "trueBody": { - "id": 3165, - "nodeType": "Block", - "src": "4910:118:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3151, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4915:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3153, - "indexExpression": { - "argumentTypes": null, - "id": 3152, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4929:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4915:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3154, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4941:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3156, - "indexExpression": { - "argumentTypes": null, - "id": 3155, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4955:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4941:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4915:59:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3158, - "nodeType": "ExpressionStatement", - "src": "4915:59:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3159, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4979:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3161, - "indexExpression": { - "argumentTypes": null, - "id": 3160, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4993:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4979:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3162, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "5015:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4979:44:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3164, - "nodeType": "ExpressionStatement", - "src": "4979:44:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3168, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackMethodIdMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3143, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3168, - "src": "4845:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3142, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4845:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4844:17:25" - }, - "payable": false, - "returnParameters": { - "id": 3145, - "nodeType": "ParameterList", - "parameters": [], - "src": "4870:0:25" - }, - "scope": 4000, - "src": "4818:213:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3182, - "nodeType": "Block", - "src": "5084:76:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3173, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5088:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3174, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5107:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5107:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5088:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3177, - "nodeType": "ExpressionStatement", - "src": "5088:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3178, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "5126:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3179, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3170, - "src": "5148:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "5126:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3181, - "nodeType": "ExpressionStatement", - "src": "5126:30:25" - } - ] - }, - "documentation": null, - "id": 3183, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3170, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3183, - "src": "5059:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3169, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5059:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5058:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [], - "src": "5084:0:25" - }, - "scope": 4000, - "src": "5034:126:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3192, - "nodeType": "Block", - "src": "5212:33:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3189, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "5232:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3188, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5216:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5216:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3191, - "nodeType": "ExpressionStatement", - "src": "5216:25:25" - } - ] - }, - "documentation": null, - "id": 3193, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3186, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3185, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3193, - "src": "5187:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3184, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5187:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5186:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3187, - "nodeType": "ParameterList", - "parameters": [], - "src": "5212:0:25" - }, - "scope": 4000, - "src": "5163:82:25", - "stateMutability": "nonpayable", - "superFunction": 2882, - "visibility": "external" - }, - { - "body": { - "id": 3211, - "nodeType": "Block", - "src": "5300:74:25", - "statements": [ - { - "assignments": [ - 3199 - ], - "declarations": [ - { - "constant": false, - "id": 3199, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5304:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3198, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5304:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3204, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3200, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3195, - "src": "5316:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5331:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5316:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5304:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3207, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3199, - "src": "5364:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3206, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5352:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5352:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3205, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5336:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5336:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3210, - "nodeType": "ExpressionStatement", - "src": "5336:34:25" - } - ] - }, - "documentation": null, - "id": 3212, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3195, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5276:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3194, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5276:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5275:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3197, - "nodeType": "ParameterList", - "parameters": [], - "src": "5300:0:25" - }, - "scope": 4000, - "src": "5248:126:25", - "stateMutability": "nonpayable", - "superFunction": 2887, - "visibility": "external" - }, - { - "body": { - "id": 3223, - "nodeType": "Block", - "src": "5429:47:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3219, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3214, - "src": "5461:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3218, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5449:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5449:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5433:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5433:38:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3222, - "nodeType": "ExpressionStatement", - "src": "5433:38:25" - } - ] - }, - "documentation": null, - "id": 3224, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3214, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3224, - "src": "5405:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3213, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5405:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5404:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3216, - "nodeType": "ParameterList", - "parameters": [], - "src": "5429:0:25" - }, - "scope": 4000, - "src": "5377:99:25", - "stateMutability": "nonpayable", - "superFunction": 2892, - "visibility": "external" - }, - { - "body": { - "id": 3235, - "nodeType": "Block", - "src": "5537:49:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3231, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3226, - "src": "5572:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3230, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "5557:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5557:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3229, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5541:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5541:41:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3234, - "nodeType": "ExpressionStatement", - "src": "5541:41:25" - } - ] - }, - "documentation": null, - "id": 3236, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3227, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3226, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "5510:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3225, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5510:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5509:18:25" - }, - "payable": false, - "returnParameters": { - "id": 3228, - "nodeType": "ParameterList", - "parameters": [], - "src": "5537:0:25" - }, - "scope": 4000, - "src": "5479:107:25", - "stateMutability": "nonpayable", - "superFunction": 2897, - "visibility": "external" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "5624:72:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3239, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5628:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3240, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5647:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5647:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5628:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3243, - "nodeType": "ExpressionStatement", - "src": "5628:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3244, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5666:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5690:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "5666:26:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3247, - "nodeType": "ExpressionStatement", - "src": "5666:26:25" - } - ] - }, - "documentation": null, - "id": 3249, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3237, - "nodeType": "ParameterList", - "parameters": [], - "src": "5612:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3238, - "nodeType": "ParameterList", - "parameters": [], - "src": "5624:0:25" - }, - "scope": 4000, - "src": "5589:107:25", - "stateMutability": "nonpayable", - "superFunction": 2900, - "visibility": "external" - }, - { - "body": { - "id": 3263, - "nodeType": "Block", - "src": "5759:77:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3254, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5763:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3255, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5782:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5782:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5763:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3258, - "nodeType": "ExpressionStatement", - "src": "5763:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3259, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5801:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3260, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "5825:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "5801:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3262, - "nodeType": "ExpressionStatement", - "src": "5801:31:25" - } - ] - }, - "documentation": null, - "id": 3264, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3264, - "src": "5734:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3250, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5734:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5733:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3253, - "nodeType": "ParameterList", - "parameters": [], - "src": "5759:0:25" - }, - "scope": 4000, - "src": "5699:137:25", - "stateMutability": "nonpayable", - "superFunction": 2905, - "visibility": "external" - }, - { - "body": { - "id": 3272, - "nodeType": "Block", - "src": "5879:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3267, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5883:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3268, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5902:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5902:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5883:36:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3271, - "nodeType": "ExpressionStatement", - "src": "5883:36:25" - } - ] - }, - "documentation": null, - "id": 3273, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3265, - "nodeType": "ParameterList", - "parameters": [], - "src": "5867:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3266, - "nodeType": "ParameterList", - "parameters": [], - "src": "5879:0:25" - }, - "scope": 4000, - "src": "5839:84:25", - "stateMutability": "nonpayable", - "superFunction": 2908, - "visibility": "external" - }, - { - "body": { - "id": 3297, - "nodeType": "Block", - "src": "5993:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3280, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "5997:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3282, - "indexExpression": { - "argumentTypes": null, - "id": 3281, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6015:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5997:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3283, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6023:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6023:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5997:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3286, - "nodeType": "ExpressionStatement", - "src": "5997:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3287, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "6042:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3289, - "indexExpression": { - "argumentTypes": null, - "id": 3288, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6063:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6042:26:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3290, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6071:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6042:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3292, - "nodeType": "ExpressionStatement", - "src": "6042:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3294, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6101:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3293, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6083:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6083:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3296, - "nodeType": "ExpressionStatement", - "src": "6083:23:25" - } - ] - }, - "documentation": null, - "id": 3298, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenCalldataReturn", - "nodeType": "FunctionDefinition", "parameters": { "id": 3278, "nodeType": "ParameterList", @@ -5412,21 +998,21 @@ { "constant": false, "id": 3275, - "name": "call", + "name": "method", "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5956:10:25", + "scope": 3280, + "src": "1409:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 3274, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5956:5:25", + "src": "1409:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5440,152 +1026,73 @@ "id": 3277, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5968:14:25", + "scope": 3280, + "src": "1432:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { "id": 3276, - "name": "bytes", + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5968:5:25", + "src": "1432:4:26", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "5955:28:25" + "src": "1408:38:26" }, - "payable": false, "returnParameters": { "id": 3279, "nodeType": "ParameterList", "parameters": [], - "src": "5993:0:25" + "src": "1455:0:26" }, - "scope": 4000, - "src": "5926:184:25", + "scope": 3372, + "src": "1378:78:26", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "private" + "visibility": "external" }, { - "body": { - "id": 3310, - "nodeType": "Block", - "src": "6180:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3306, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3300, - "src": "6205:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3307, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "6211:8:25", - "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": 3305, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3298, - "src": "6184:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6184:36:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3309, - "nodeType": "ExpressionStatement", - "src": "6184:36:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3311, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3287, + "implemented": false, + "kind": "function", "modifiers": [], - "name": "givenCalldataReturn", + "name": "givenMethodReturnAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 3303, + "id": 3285, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3300, - "name": "call", + "id": 3282, + "name": "method", "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6142:10:25", + "scope": 3287, + "src": "1492:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3299, + "id": 3281, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6142:5:25", + "src": "1492:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5596,22 +1103,77 @@ }, { "constant": false, - "id": 3302, + "id": 3284, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6154:14:25", + "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": 3301, + "id": 3288, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6154:5:25", + "src": "1572:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5621,240 +1183,240 @@ "visibility": "internal" } ], - "src": "6141:28:25" + "src": "1571:23:26" }, - "payable": false, "returnParameters": { - "id": 3304, + "id": 3291, "nodeType": "ParameterList", "parameters": [], - "src": "6180:0:25" + "src": "1603:0:26" }, - "scope": 4000, - "src": "6113:111:25", + "scope": 3372, + "src": "1545:59:26", "stateMutability": "nonpayable", - "superFunction": 2960, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3332, - "nodeType": "Block", - "src": "6296:83:25", - "statements": [ + "body": null, + "documentation": null, + "id": 3299, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "givenMethodRevertWithMessage", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3297, + "nodeType": "ParameterList", + "parameters": [ { - "assignments": [ - 3319 - ], - "declarations": [ - { - "constant": false, - "id": 3319, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6300:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3318, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6300:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3324, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3320, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3315, - "src": "6312:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6312:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6323:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, + "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_uint8", - "typeString": "uint8" + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6300:28:25" + "value": null, + "visibility": "internal" }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3326, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3313, - "src": "6351:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3328, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "6369:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3327, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6357:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6357:17:25", - "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": 3325, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6332:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6332:43:25", + "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_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "id": 3331, - "nodeType": "ExpressionStatement", - "src": "6332:43:25" + "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": 3333, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "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", @@ -5867,10 +1429,10 @@ "id": 3313, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6260:10:25", + "scope": 3318, + "src": "2273:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" @@ -5879,7 +1441,7 @@ "id": 3312, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6260:5:25", + "src": "2273:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5893,8 +1455,8 @@ "id": 3315, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6272:13:25", + "scope": 3318, + "src": "2294:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5905,7 +1467,7 @@ "id": 3314, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6272:4:25", + "src": "2294:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5915,166 +1477,51 @@ "visibility": "internal" } ], - "src": "6259:27:25" + "src": "2272:36:26" }, - "payable": false, "returnParameters": { "id": 3317, "nodeType": "ParameterList", "parameters": [], - "src": "6296:0:25" + "src": "2317:0:26" }, - "scope": 4000, - "src": "6227:152:25", + "scope": 3372, + "src": "2240:78:26", "stateMutability": "nonpayable", - "superFunction": 2967, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3347, - "nodeType": "Block", - "src": "6451:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3341, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3335, - "src": "6474:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3343, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "6492:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3342, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6480:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6480:21:25", - "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": 3340, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6455:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6455:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3346, - "nodeType": "ExpressionStatement", - "src": "6455:47:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3348, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3325, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataReturnUint", "nodeType": "FunctionDefinition", "parameters": { - "id": 3338, + "id": 3323, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3335, + "id": 3320, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6415:10:25", + "scope": 3325, + "src": "2353:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3334, + "id": 3319, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6415:5:25", + "src": "2353:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6085,11 +1532,11 @@ }, { "constant": false, - "id": 3337, + "id": 3322, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6427:13:25", + "scope": 3325, + "src": "2374:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6097,10 +1544,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3336, + "id": 3321, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6427:4:25", + "src": "2374:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6110,166 +1557,51 @@ "visibility": "internal" } ], - "src": "6414:27:25" + "src": "2352:36:26" }, - "payable": false, "returnParameters": { - "id": 3339, + "id": 3324, "nodeType": "ParameterList", "parameters": [], - "src": "6451:0:25" + "src": "2397:0:26" }, - "scope": 4000, - "src": "6382:124:25", + "scope": 3372, + "src": "2320:78:26", "stateMutability": "nonpayable", - "superFunction": 2974, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3362, - "nodeType": "Block", - "src": "6584:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3356, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "6607:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3358, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3352, - "src": "6628:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3357, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "6613:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:24:25", - "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": 3355, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6588:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6588:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3361, - "nodeType": "ExpressionStatement", - "src": "6588:50:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3363, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3332, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataReturnAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 3353, + "id": 3330, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3350, + "id": 3327, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6545:10:25", + "scope": 3332, + "src": "2436:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3349, + "id": 3326, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6545:5:25", + "src": "2436:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6280,11 +1612,11 @@ }, { "constant": false, - "id": 3352, + "id": 3329, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6557:16:25", + "scope": 3332, + "src": "2457:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6292,10 +1624,11 @@ "typeString": "address" }, "typeName": { - "id": 3351, + "id": 3328, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6557:7:25", + "src": "2457:7:26", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6305,1512 +1638,51 @@ "visibility": "internal" } ], - "src": "6544:30:25" + "src": "2435:39:26" }, - "payable": false, "returnParameters": { - "id": 3354, + "id": 3331, "nodeType": "ParameterList", "parameters": [], - "src": "6584:0:25" + "src": "2483:0:26" }, - "scope": 4000, - "src": "6509:133:25", - "stateMutability": "nonpayable", - "superFunction": 2981, - "visibility": "external" - }, - { - "body": { - "id": 3393, - "nodeType": "Block", - "src": "6709:164:25", - "statements": [ - { - "assignments": [ - 3371 - ], - "declarations": [ - { - "constant": false, - "id": 3371, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6713:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3370, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "6713:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3375, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3373, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3365, - "src": "6743:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3372, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "6729:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6729:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6713:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3376, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "6752:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3378, - "indexExpression": { - "argumentTypes": null, - "id": 3377, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6770:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6752:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3379, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6780:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6780:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6752:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3382, - "nodeType": "ExpressionStatement", - "src": "6752:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3383, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "6799:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3385, - "indexExpression": { - "argumentTypes": null, - "id": 3384, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6820:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6799:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3386, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3367, - "src": "6830:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6799:39:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3388, - "nodeType": "ExpressionStatement", - "src": "6799:39:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3390, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6860:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3389, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "6842:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6842:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3392, - "nodeType": "ExpressionStatement", - "src": "6842:25:25" - } - ] - }, - "documentation": null, - "id": 3394, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3368, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3365, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6673:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3364, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6673:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3367, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6685:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3366, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6685:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6672:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3369, - "nodeType": "ParameterList", - "parameters": [], - "src": "6709:0:25" - }, - "scope": 4000, - "src": "6645:228:25", + "scope": 3372, + "src": "2400:84:26", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3406, - "nodeType": "Block", - "src": "6940:42:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3402, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "6963:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3403, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "6969:8:25", - "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": 3401, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6944:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6944:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3405, - "nodeType": "ExpressionStatement", - "src": "6944:34:25" - } - ] - }, - "documentation": null, - "id": 3407, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3396, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6903:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3395, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6903:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3398, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6915:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3397, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6915:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6902:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3400, - "nodeType": "ParameterList", - "parameters": [], - "src": "6940:0:25" - }, - "scope": 4000, - "src": "6876:106:25", - "stateMutability": "nonpayable", - "superFunction": 2915, "visibility": "external" }, { - "body": { - "id": 3428, - "nodeType": "Block", - "src": "7052:83:25", - "statements": [ - { - "assignments": [ - 3415 - ], - "declarations": [ - { - "constant": false, - "id": 3415, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7056:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3414, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7056:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3420, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3416, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3411, - "src": "7068:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7083:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "7068:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7079:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7056:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3422, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3409, - "src": "7107:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3424, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3415, - "src": "7125:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3423, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7113:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7113:17:25", - "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": 3421, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7088:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7088:43:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3427, - "nodeType": "ExpressionStatement", - "src": "7088:43:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3429, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3412, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3409, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7016:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3408, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7016:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3411, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7028:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3410, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7028:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7015:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3413, - "nodeType": "ParameterList", - "parameters": [], - "src": "7052:0:25" - }, - "scope": 4000, - "src": "6985:150:25", - "stateMutability": "nonpayable", - "superFunction": 2922, - "visibility": "external" - }, - { - "body": { - "id": 3443, - "nodeType": "Block", - "src": "7205:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3437, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3431, - "src": "7228:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3439, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3433, - "src": "7246:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3438, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7234:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7234:21:25", - "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": 3436, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7209:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7209:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3442, - "nodeType": "ExpressionStatement", - "src": "7209:47:25" - } - ] - }, - "documentation": null, - "id": 3444, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3434, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3431, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7169:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3430, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7169:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3433, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3432, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7168:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3435, - "nodeType": "ParameterList", - "parameters": [], - "src": "7205:0:25" - }, - "scope": 4000, - "src": "7138:122:25", - "stateMutability": "nonpayable", - "superFunction": 2929, - "visibility": "external" - }, - { - "body": { - "id": 3458, - "nodeType": "Block", - "src": "7336:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3452, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "7359:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3454, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3448, - "src": "7380:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3453, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "7365:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7365:24:25", - "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": 3451, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7340:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7340:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3457, - "nodeType": "ExpressionStatement", - "src": "7340:50:25" - } - ] - }, - "documentation": null, - "id": 3459, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7297:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3445, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7297:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3448, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7309:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3447, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7309:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7296:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3450, - "nodeType": "ParameterList", - "parameters": [], - "src": "7336:0:25" - }, - "scope": 4000, - "src": "7263:131:25", - "stateMutability": "nonpayable", - "superFunction": 2936, - "visibility": "external" - }, - { - "body": { - "id": 3481, - "nodeType": "Block", - "src": "7447:112:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3464, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7451:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3466, - "indexExpression": { - "argumentTypes": null, - "id": 3465, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7469:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7451:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3467, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7477:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7477:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7451:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3470, - "nodeType": "ExpressionStatement", - "src": "7451:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3471, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7496:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3473, - "indexExpression": { - "argumentTypes": null, - "id": 3472, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7518:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7496:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7526:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "7496:32:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3476, - "nodeType": "ExpressionStatement", - "src": "7496:32:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3478, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7550:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3477, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7532:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7532:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3480, - "nodeType": "ExpressionStatement", - "src": "7532:23:25" - } - ] - }, - "documentation": null, - "id": 3482, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3337, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataRevert", "nodeType": "FunctionDefinition", "parameters": { - "id": 3462, + "id": 3335, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3461, - "name": "call", + "id": 3334, + "name": "data", "nodeType": "VariableDeclaration", - "scope": 3482, - "src": "7426:10:25", + "scope": 3337, + "src": "2516:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3460, + "id": 3333, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7426:5:25", + "src": "2516:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7820,565 +1692,51 @@ "visibility": "internal" } ], - "src": "7425:12:25" + "src": "2515:21:26" }, - "payable": false, "returnParameters": { - "id": 3463, + "id": 3336, "nodeType": "ParameterList", "parameters": [], - "src": "7447:0:25" + "src": "2545:0:26" }, - "scope": 4000, - "src": "7397:162:25", + "scope": 3372, + "src": "2487:59:26", "stateMutability": "nonpayable", - "superFunction": 2986, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3504, - "nodeType": "Block", - "src": "7610:121:25", - "statements": [ - { - "assignments": [ - 3488 - ], - "declarations": [ - { - "constant": false, - "id": 3488, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7614:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3487, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7614:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3490, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3484, - "src": "7644:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3489, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "7630:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7630:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7614:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3493, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "7653:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3495, - "indexExpression": { - "argumentTypes": null, - "id": 3494, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7671:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7653:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3496, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7681:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7681:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7653:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3499, - "nodeType": "ExpressionStatement", - "src": "7653:43:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3501, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7718:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3500, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "7700:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7700:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "7700:25:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3505, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3484, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7589:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3483, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7589:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7588:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3486, - "nodeType": "ParameterList", - "parameters": [], - "src": "7610:0:25" - }, - "scope": 4000, - "src": "7562:169:25", - "stateMutability": "nonpayable", - "superFunction": 2941, - "visibility": "external" - }, - { - "body": { - "id": 3529, - "nodeType": "Block", - "src": "7811:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3512, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7815:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3514, - "indexExpression": { - "argumentTypes": null, - "id": 3513, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7833:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7815:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3515, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7841:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7841:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7815:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3518, - "nodeType": "ExpressionStatement", - "src": "7815:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3519, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7860:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3521, - "indexExpression": { - "argumentTypes": null, - "id": 3520, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7882:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7860:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3522, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3509, - "src": "7890:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "7860:37:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3524, - "nodeType": "ExpressionStatement", - "src": "7860:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3526, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7919:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3525, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7901:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7901:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3528, - "nodeType": "ExpressionStatement", - "src": "7901:23:25" - } - ] - }, - "documentation": null, - "id": 3530, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3344, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataRevertWithMessage", "nodeType": "FunctionDefinition", "parameters": { - "id": 3510, + "id": 3342, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3507, - "name": "call", + "id": 3339, + "name": "data", "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7774:10:25", + "scope": 3344, + "src": "2588:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3506, + "id": 3338, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7774:5:25", + "src": "2588:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8389,22 +1747,22 @@ }, { "constant": false, - "id": 3509, + "id": 3341, "name": "message", "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7786:14:25", + "scope": 3344, + "src": "2609:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string" }, "typeName": { - "id": 3508, + "id": 3340, "name": "string", "nodeType": "ElementaryTypeName", - "src": "7786:6:25", + "src": "2609:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -8414,71 +1772,2284 @@ "visibility": "internal" } ], - "src": "7773:28:25" + "src": "2587:46:26" }, - "payable": false, "returnParameters": { - "id": 3511, + "id": 3343, "nodeType": "ParameterList", "parameters": [], - "src": "7811:0:25" + "src": "2642:0:26" }, - "scope": 4000, - "src": "7734:194:25", + "scope": 3372, + "src": "2548:95:26", "stateMutability": "nonpayable", - "superFunction": 2993, + "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": 3560, + "id": 3457, "nodeType": "Block", - "src": "8006:165:25", + "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": [ - 3538 + 3464 ], "declarations": [ { "constant": false, - "id": 3538, - "name": "method", + "id": 3464, + "name": "callHash", "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "8010:13:25", + "scope": 3491, + "src": "4780:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 3537, - "name": "bytes4", + "id": 3463, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8010:6:25", + "src": "4780:7:26", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], - "id": 3542, + "id": 3468, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3540, + "id": 3466, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3532, - "src": "8040:4:25", + "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" @@ -8493,14 +4064,14 @@ } ], "id": 3539, - "name": "bytesToBytes4", + "name": "_givenAnyReturn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8026:13:25", + "referencedDeclaration": 3534, + "src": "5389:15:26", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" } }, "id": 3541, @@ -8511,60 +4082,644 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8026:19:25", + "src": "5389:25:26", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "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": "8010:35:25" + "src": "5477:28:26" }, { "expression": { "argumentTypes": null, - "id": 3548, + "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, - "baseExpression": { - "argumentTypes": null, - "id": 3543, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8049:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3545, - "indexExpression": { - "argumentTypes": null, - "id": 3544, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8067:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8049:25:25", + "id": 3590, + "name": "fallbackMockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3434, + "src": "5801:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -8574,18 +4729,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3546, + "id": 3591, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8077:8:25", + "referencedDeclaration": 3378, + "src": "5820:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3547, + "id": 3592, "isConstant": false, "isLValue": false, "isPure": true, @@ -8593,65 +4748,38 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8077:15:25", + "src": "5820:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "8049:43:25", + "src": "5801:34:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3549, + "id": 3594, "nodeType": "ExpressionStatement", - "src": "8049:43:25" + "src": "5801:34:26" }, { "expression": { "argumentTypes": null, - "id": 3554, + "id": 3597, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3550, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "8096:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3552, - "indexExpression": { - "argumentTypes": null, - "id": 3551, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8119:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8096:30:25", + "id": 3595, + "name": "fallbackRevertMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3438, + "src": "5839:21:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -8661,139 +4789,204 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3553, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "8129:7:25", + "hexValue": "", + "id": 3596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5863:2:26", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" }, - "src": "8096:40:25", + "src": "5839:26:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3555, + "id": 3598, "nodeType": "ExpressionStatement", - "src": "8096:40:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3557, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8158:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3556, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8140:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8140:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3559, - "nodeType": "ExpressionStatement", - "src": "8140:25:25" + "src": "5839:26:26" } ] }, "documentation": null, - "id": 3561, + "id": 3600, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "givenMethodRevertWithMessage", + "name": "givenAnyRevert", "nodeType": "FunctionDefinition", "parameters": { - "id": 3535, + "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": 3532, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7969:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3531, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7969:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3534, + "id": 3602, "name": "message", "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7981:14:25", + "scope": 3615, + "src": "5907:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string" }, "typeName": { - "id": 3533, + "id": 3601, "name": "string", "nodeType": "ElementaryTypeName", - "src": "7981:6:25", + "src": "5907:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -8803,72 +4996,44 @@ "visibility": "internal" } ], - "src": "7968:28:25" + "src": "5906:25:26" }, - "payable": false, "returnParameters": { - "id": 3536, + "id": 3604, "nodeType": "ParameterList", "parameters": [], - "src": "8006:0:25" + "src": "5941:0:26" }, - "scope": 4000, - "src": "7931:240:25", + "scope": 4351, + "src": "5872:146:26", "stateMutability": "nonpayable", - "superFunction": 2948, + "superFunction": 3256, "visibility": "external" }, { "body": { - "id": 3577, + "id": 3623, "nodeType": "Block", - "src": "8229:78:25", + "src": "6061:44:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3571, + "id": 3621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3566, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "8233:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3568, - "indexExpression": { - "argumentTypes": null, - "id": 3567, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8251:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8233:23:25", + "id": 3618, + "name": "fallbackMockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3434, + "src": "6065:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -8878,18 +5043,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3569, + "id": 3619, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8259:8:25", + "referencedDeclaration": 3378, + "src": "6084:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3570, + "id": 3620, "isConstant": false, "isLValue": false, "isPure": true, @@ -8897,21 +5062,216 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8259:17:25", + "src": "6084:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "8233:43:25", + "src": "6065:36:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3572, + "id": 3622, "nodeType": "ExpressionStatement", - "src": "8233:43:25" + "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": { @@ -8919,37 +5279,37 @@ "arguments": [ { "argumentTypes": null, - "id": 3574, + "id": 3645, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8298:4:25", + "referencedDeclaration": 3626, + "src": "6297:4:26", "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" + "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": 3573, + "id": 3644, "name": "trackCalldataMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "8280:17:25", + "referencedDeclaration": 3492, + "src": "6279:17:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 3575, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -8957,48 +5317,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8280:23:25", + "src": "6279:23:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3576, + "id": 3647, "nodeType": "ExpressionStatement", - "src": "8280:23:25" + "src": "6279:23:26" } ] }, "documentation": null, - "id": 3578, + "id": 3649, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "givenCalldataRunOutOfGas", + "name": "_givenCalldataReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 3564, + "id": 3629, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3563, + "id": 3626, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "8208:10:25", + "scope": 3649, + "src": "6138:17:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", + "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3562, + "id": 3625, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8208:5:25", + "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" @@ -9008,71 +5393,51 @@ "visibility": "internal" } ], - "src": "8207:12:25" + "src": "6137:42:26" }, - "payable": false, "returnParameters": { - "id": 3565, + "id": 3630, "nodeType": "ParameterList", "parameters": [], - "src": "8229:0:25" + "src": "6189:0:26" }, - "scope": 4000, - "src": "8174:133:25", + "scope": 4351, + "src": "6108:198:26", "stateMutability": "nonpayable", - "superFunction": 2998, - "visibility": "external" + "superFunction": null, + "visibility": "private" }, { "body": { - "id": 3600, + "id": 3661, "nodeType": "Block", - "src": "8363:122:25", + "src": "6394:44:26", "statements": [ { - "assignments": [ - 3584 - ], - "declarations": [ - { - "constant": false, - "id": 3584, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8367:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3583, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8367:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3588, - "initialValue": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3586, + "id": 3657, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3580, - "src": "8397:4:25", + "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" @@ -9081,23 +5446,27 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } ], - "id": 3585, - "name": "bytesToBytes4", + "id": 3656, + "name": "_givenCalldataReturn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8383:13:25", + "referencedDeclaration": 3649, + "src": "6398:20:26", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory,bytes memory)" } }, - "id": 3587, + "id": 3659, "isConstant": false, "isLValue": false, "isPure": false, @@ -9105,19 +5474,870 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8383:19:25", + "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": "8367:35:25" + "src": "6974:35:26" }, { "expression": { "argumentTypes": null, - "id": 3594, + "id": 3732, "isConstant": false, "isLValue": false, "isPure": false, @@ -9126,26 +6346,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3589, + "id": 3727, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8406:17:25", + "referencedDeclaration": 3420, + "src": "7013:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3591, + "id": 3729, "indexExpression": { "argumentTypes": null, - "id": 3590, + "id": 3728, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8424:6:25", + "referencedDeclaration": 3722, + "src": "7031:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -9156,9 +6376,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8406:25:25", + "src": "7013:25:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -9168,40 +6388,113 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3592, + "id": 3730, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8434:8:25", + "referencedDeclaration": 3378, + "src": "7041:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3593, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberName": "OutOfGas", + "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8434:17:25", + "src": "7041:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "8406:45:25", + "src": "7013:43:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3595, + "id": 3733, "nodeType": "ExpressionStatement", - "src": "8406:45:25" + "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": { @@ -9209,12 +6502,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3597, + "id": 3741, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8473:6:25", + "referencedDeclaration": 3722, + "src": "7121:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -9228,18 +6521,18 @@ "typeString": "bytes4" } ], - "id": 3596, + "id": 3740, "name": "trackMethodIdMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8455:17:25", + "referencedDeclaration": 3519, + "src": "7103:17:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, - "id": 3598, + "id": 3742, "isConstant": false, "isLValue": false, "isPure": false, @@ -9247,48 +6540,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8455:25:25", + "src": "7103:25:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3599, + "id": 3743, "nodeType": "ExpressionStatement", - "src": "8455:25:25" + "src": "7103:25:26" } ] }, "documentation": null, - "id": 3601, + "id": 3745, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "givenMethodRunOutOfGas", + "name": "_givenMethodReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 3581, + "id": 3719, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3580, + "id": 3716, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8342:10:25", + "scope": 3745, + "src": "6920:17:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", + "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3579, + "id": 3715, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8342:5:25", + "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" @@ -9298,74 +6616,628 @@ "visibility": "internal" } ], - "src": "8341:12:25" + "src": "6919:42:26" }, - "payable": false, "returnParameters": { - "id": 3582, + "id": 3720, "nodeType": "ParameterList", "parameters": [], - "src": "8363:0:25" + "src": "6970:0:26" }, - "scope": 4000, - "src": "8310:175:25", + "scope": 4351, + "src": "6892:242:26", "stateMutability": "nonpayable", - "superFunction": 2953, - "visibility": "external" + "superFunction": null, + "visibility": "private" }, { "body": { - "id": 3608, + "id": 3757, "nodeType": "Block", - "src": "8539:26:25", + "src": "7219:42:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3606, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "8550:11:25", + "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_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 3605, - "id": 3607, - "nodeType": "Return", - "src": "8543:18:25" + "id": 3756, + "nodeType": "ExpressionStatement", + "src": "7223:34:26" } ] }, "documentation": null, - "id": 3609, + "id": 3758, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "invocationCount", + "name": "givenMethodReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "8512:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3605, + "id": 3750, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3604, - "name": "", + "id": 3747, + "name": "call", "nodeType": "VariableDeclaration", - "scope": 3609, - "src": "8533:4:25", + "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": { @@ -9373,10 +7245,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3603, + "id": 3783, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8533:4:25", + "src": "7478:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9386,32 +7258,513 @@ "visibility": "internal" } ], - "src": "8532:6:25" + "src": "7456:36:26" }, - "scope": 4000, - "src": "8488:77:25", + "returnParameters": { + "id": 3786, + "nodeType": "ParameterList", + "parameters": [], + "src": "7502:0:26" + }, + "scope": 4351, + "src": "7426:131:26", "stateMutability": "nonpayable", - "superFunction": 3003, + "superFunction": 3280, "visibility": "external" }, { "body": { - "id": 3632, + "id": 3809, "nodeType": "Block", - "src": "8638:122:25", + "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": [ - 3617 + 3839 ], "declarations": [ { "constant": false, - "id": 3617, + "id": 3839, "name": "method", "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8642:13:25", + "scope": 3855, + "src": "7938:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9419,10 +7772,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3616, + "id": 3838, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "8642:6:25", + "src": "7938:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -9432,18 +7785,18 @@ "visibility": "internal" } ], - "id": 3621, + "id": 3843, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3619, + "id": 3841, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "8672:4:25", + "referencedDeclaration": 3835, + "src": "7968:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -9457,18 +7810,18 @@ "typeString": "bytes calldata" } ], - "id": 3618, + "id": 3840, "name": "bytesToBytes4", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8658:13:25", + "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": 3620, + "id": 3842, "isConstant": false, "isLValue": false, "isPure": false, @@ -9476,32 +7829,1579 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8658:19:25", + "src": "7954:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", - "src": "8642:35:25" + "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": 3622, + "id": 3973, "name": "methodIdInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "8688:19:25", + "referencedDeclaration": 3432, + "src": "9075:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3630, + "id": 3981, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -9510,12 +9410,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3626, + "id": 3977, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8735:10:25", + "referencedDeclaration": 3442, + "src": "9122:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9523,12 +9423,12 @@ }, { "argumentTypes": null, - "id": 3627, + "id": 3978, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3617, - "src": "8747:6:25", + "referencedDeclaration": 3968, + "src": "9134:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -9548,18 +9448,18 @@ ], "expression": { "argumentTypes": null, - "id": 3624, + "id": 3975, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8718:3:25", + "referencedDeclaration": 4353, + "src": "9105:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3625, + "id": 3976, "isConstant": false, "isLValue": false, "isPure": true, @@ -9567,13 +9467,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8718:16:25", + "src": "9105:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3628, + "id": 3979, "isConstant": false, "isLValue": false, "isPure": false, @@ -9581,7 +9481,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8718:36:25", + "src": "9105:36:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -9595,18 +9495,18 @@ "typeString": "bytes memory" } ], - "id": 3623, + "id": 3974, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8708:9:25", + "referencedDeclaration": 4360, + "src": "9095:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3629, + "id": 3980, "isConstant": false, "isLValue": false, "isPure": false, @@ -9614,7 +9514,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8708:47:25", + "src": "9095:47:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9625,49 +9525,48 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8688:68:25", + "src": "9075:68:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3615, - "id": 3631, + "functionReturnParameters": 3966, + "id": 3982, "nodeType": "Return", - "src": "8681:75:25" + "src": "9068:75:26" } ] }, "documentation": null, - "id": 3633, + "id": 3984, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "invocationCountForMethod", "nodeType": "FunctionDefinition", "parameters": { - "id": 3612, + "id": 3963, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3611, + "id": 3962, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8602:10:25", + "scope": 3984, + "src": "8980:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3610, + "id": 3961, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8602:5:25", + "src": "8980:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9677,20 +9576,19 @@ "visibility": "internal" } ], - "src": "8601:12:25" + "src": "8979:21:26" }, - "payable": false, "returnParameters": { - "id": 3615, + "id": 3966, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3614, + "id": 3965, "name": "", "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8632:4:25", + "scope": 3984, + "src": "9019:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9698,10 +9596,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3613, + "id": 3964, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8632:4:25", + "src": "9019:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9711,37 +9609,37 @@ "visibility": "internal" } ], - "src": "8631:6:25" + "src": "9018:6:26" }, - "scope": 4000, - "src": "8568:192:25", + "scope": 4351, + "src": "8946:201:26", "stateMutability": "nonpayable", - "superFunction": 3010, + "superFunction": 3361, "visibility": "external" }, { "body": { - "id": 3650, + "id": 4001, "nodeType": "Block", - "src": "8835:81:25", + "src": "9231:81:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3640, + "id": 3991, "name": "calldataInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "8846:19:25", + "referencedDeclaration": 3412, + "src": "9242:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3648, + "id": 3999, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -9750,12 +9648,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3644, + "id": 3995, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8893:10:25", + "referencedDeclaration": 3442, + "src": "9289:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9763,12 +9661,12 @@ }, { "argumentTypes": null, - "id": 3645, + "id": 3996, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3635, - "src": "8905:4:25", + "referencedDeclaration": 3986, + "src": "9301:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -9788,18 +9686,18 @@ ], "expression": { "argumentTypes": null, - "id": 3642, + "id": 3993, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8876:3:25", + "referencedDeclaration": 4353, + "src": "9272:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3643, + "id": 3994, "isConstant": false, "isLValue": false, "isPure": true, @@ -9807,13 +9705,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8876:16:25", + "src": "9272:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3646, + "id": 3997, "isConstant": false, "isLValue": false, "isPure": false, @@ -9821,7 +9719,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8876:34:25", + "src": "9272:34:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -9835,18 +9733,18 @@ "typeString": "bytes memory" } ], - "id": 3641, + "id": 3992, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8866:9:25", + "referencedDeclaration": 4360, + "src": "9262:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3647, + "id": 3998, "isConstant": false, "isLValue": false, "isPure": false, @@ -9854,7 +9752,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8866:45:25", + "src": "9262:45:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9865,49 +9763,48 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8846:66:25", + "src": "9242:66:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3639, - "id": 3649, + "functionReturnParameters": 3990, + "id": 4000, "nodeType": "Return", - "src": "8839:73:25" + "src": "9235:73:26" } ] }, "documentation": null, - "id": 3651, + "id": 4002, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "invocationCountForCalldata", "nodeType": "FunctionDefinition", "parameters": { - "id": 3636, + "id": 3987, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3635, + "id": 3986, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8799:10:25", + "scope": 4002, + "src": "9186:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3634, + "id": 3985, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8799:5:25", + "src": "9186:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9917,20 +9814,19 @@ "visibility": "internal" } ], - "src": "8798:12:25" + "src": "9185:21:26" }, - "payable": false, "returnParameters": { - "id": 3639, + "id": 3990, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3638, + "id": 3989, "name": "", "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8829:4:25", + "scope": 4002, + "src": "9225:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9938,10 +9834,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3637, + "id": 3988, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8829:4:25", + "src": "9225:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9951,32 +9847,32 @@ "visibility": "internal" } ], - "src": "8828:6:25" + "src": "9224:6:26" }, - "scope": 4000, - "src": "8763:153:25", + "scope": 4351, + "src": "9150:162:26", "stateMutability": "nonpayable", - "superFunction": 3017, + "superFunction": 3368, "visibility": "external" }, { "body": { - "id": 3783, + "id": 4134, "nodeType": "Block", - "src": "8945:1265:25", + "src": "9341:1265:26", "statements": [ { "assignments": [ - 3655 + 4006 ], "declarations": [ { "constant": false, - "id": 3655, + "id": 4006, "name": "nextMock", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "8984:21:25", + "scope": 4134, + "src": "9380:21:26", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -9984,10 +9880,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3654, + "id": 4005, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8984:5:25", + "src": "9380:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9997,31 +9893,31 @@ "visibility": "internal" } ], - "id": 3659, + "id": 4010, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3656, + "id": 4007, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9008:13:25", + "referencedDeclaration": 3396, + "src": "9404:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3658, + "id": 4009, "indexExpression": { "argumentTypes": null, - "id": 3657, + "id": 4008, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9022:16:25", + "referencedDeclaration": 3381, + "src": "9418:16:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10032,27 +9928,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9008:31:25", + "src": "9404:31:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "8984:55:25" + "src": "9380:55:26" }, { "assignments": [ - 3661 + 4012 ], "declarations": [ { "constant": false, - "id": 3661, + "id": 4012, "name": "mockHash", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9043:16:25", + "scope": 4134, + "src": "9439:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10060,10 +9956,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3660, + "id": 4011, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9043:7:25", + "src": "9439:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10073,18 +9969,18 @@ "visibility": "internal" } ], - "id": 3665, + "id": 4016, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3663, + "id": 4014, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9072:8:25", + "referencedDeclaration": 4006, + "src": "9468:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -10098,18 +9994,18 @@ "typeString": "bytes memory" } ], - "id": 3662, + "id": 4013, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9062:9:25", + "referencedDeclaration": 4360, + "src": "9458:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3664, + "id": 4015, "isConstant": false, "isLValue": false, "isPure": false, @@ -10117,25 +10013,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9062:19:25", + "src": "9458:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "9043:38:25" + "src": "9439:38:26" }, { "body": { - "id": 3706, + "id": 4057, "nodeType": "Block", - "src": "9153:355:25", + "src": "9549:355:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3674, + "id": 4025, "isConstant": false, "isLValue": false, "isPure": false, @@ -10144,26 +10040,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3669, + "id": 4020, "name": "calldataMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "9184:17:25", + "referencedDeclaration": 3400, + "src": "9580:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, - "id": 3671, + "id": 4022, "indexExpression": { "argumentTypes": null, - "id": 3670, + "id": 4021, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9202:8:25", + "referencedDeclaration": 4006, + "src": "9598:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -10174,9 +10070,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9184:27:25", + "src": "9580:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -10186,18 +10082,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3672, + "id": 4023, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9214:8:25", + "referencedDeclaration": 3378, + "src": "9610:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3673, + "id": 4024, "isConstant": false, "isLValue": false, "isPure": true, @@ -10205,26 +10101,26 @@ "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9214:15:25", + "src": "9610:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "9184:45:25", + "src": "9580:45:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3675, + "id": 4026, "nodeType": "ExpressionStatement", - "src": "9184:45:25" + "src": "9580:45:26" }, { "expression": { "argumentTypes": null, - "id": 3680, + "id": 4031, "isConstant": false, "isLValue": false, "isPure": false, @@ -10233,26 +10129,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3676, + "id": 4027, "name": "calldataExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "9234:20:25", + "referencedDeclaration": 3404, + "src": "9630:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes memory => bytes storage ref)" } }, - "id": 3678, + "id": 4029, "indexExpression": { "argumentTypes": null, - "id": 3677, + "id": 4028, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9255:8:25", + "referencedDeclaration": 4006, + "src": "9651:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -10263,7 +10159,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9234:30:25", + "src": "9630:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -10274,14 +10170,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3679, + "id": 4030, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9267:5:25", + "src": "9663:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -10289,20 +10185,20 @@ }, "value": "" }, - "src": "9234:38:25", + "src": "9630:38:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3681, + "id": 4032, "nodeType": "ExpressionStatement", - "src": "9234:38:25" + "src": "9630:38:26" }, { "expression": { "argumentTypes": null, - "id": 3686, + "id": 4037, "isConstant": false, "isLValue": false, "isPure": false, @@ -10311,26 +10207,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3682, + "id": 4033, "name": "calldataRevertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "9277:21:25", + "referencedDeclaration": 3408, + "src": "9673:21:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, - "id": 3684, + "id": 4035, "indexExpression": { "argumentTypes": null, - "id": 3683, + "id": 4034, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9299:8:25", + "referencedDeclaration": 4006, + "src": "9695:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -10341,7 +10237,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9277:31:25", + "src": "9673:31:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -10352,14 +10248,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3685, + "id": 4036, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9311:2:25", + "src": "9707:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -10367,32 +10263,32 @@ }, "value": "" }, - "src": "9277:36:25", + "src": "9673:36:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3687, + "id": 4038, "nodeType": "ExpressionStatement", - "src": "9277:36:25" + "src": "9673:36:26" }, { "expression": { "argumentTypes": null, - "id": 3692, + "id": 4043, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3688, + "id": 4039, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9348:8:25", + "referencedDeclaration": 4006, + "src": "9744:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -10404,26 +10300,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3689, + "id": 4040, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9359:13:25", + "referencedDeclaration": 3396, + "src": "9755:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3691, + "id": 4042, "indexExpression": { "argumentTypes": null, - "id": 3690, + "id": 4041, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9373:8:25", + "referencedDeclaration": 4012, + "src": "9769:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10434,26 +10330,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9359:23:25", + "src": "9755:23:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "src": "9348:34:25", + "src": "9744:34:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3693, + "id": 4044, "nodeType": "ExpressionStatement", - "src": "9348:34:25" + "src": "9744:34:26" }, { "expression": { "argumentTypes": null, - "id": 3698, + "id": 4049, "isConstant": false, "isLValue": false, "isPure": false, @@ -10462,26 +10358,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3694, + "id": 4045, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9417:13:25", + "referencedDeclaration": 3396, + "src": "9813:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3696, + "id": 4047, "indexExpression": { "argumentTypes": null, - "id": 3695, + "id": 4046, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9431:8:25", + "referencedDeclaration": 4012, + "src": "9827:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10492,7 +10388,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9417:23:25", + "src": "9813:23:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -10503,14 +10399,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3697, + "id": 4048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9443:2:25", + "src": "9839:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -10518,32 +10414,32 @@ }, "value": "" }, - "src": "9417:28:25", + "src": "9813:28:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3699, + "id": 4050, "nodeType": "ExpressionStatement", - "src": "9417:28:25" + "src": "9813:28:26" }, { "expression": { "argumentTypes": null, - "id": 3704, + "id": 4055, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3700, + "id": 4051, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9473:8:25", + "referencedDeclaration": 4012, + "src": "9869:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10556,12 +10452,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3702, + "id": 4053, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9494:8:25", + "referencedDeclaration": 4006, + "src": "9890:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -10575,18 +10471,18 @@ "typeString": "bytes memory" } ], - "id": 3701, + "id": 4052, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9484:9:25", + "referencedDeclaration": 4360, + "src": "9880:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3703, + "id": 4054, "isConstant": false, "isLValue": false, "isPure": false, @@ -10594,21 +10490,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9484:19:25", + "src": "9880:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "9473:30:25", + "src": "9869:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 3705, + "id": 4056, "nodeType": "ExpressionStatement", - "src": "9473:30:25" + "src": "9869:30:26" } ] }, @@ -10618,19 +10514,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 3668, + "id": 4019, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3666, + "id": 4017, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9120:8:25", + "referencedDeclaration": 4012, + "src": "9516:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10640,31 +10536,31 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 3667, + "id": 4018, "name": "MOCKS_LIST_END_HASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "9132:19:25", + "referencedDeclaration": 3389, + "src": "9528:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "9120:31:25", + "src": "9516:31:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3707, + "id": 4058, "nodeType": "WhileStatement", - "src": "9114:394:25" + "src": "9510:394:26" }, { "expression": { "argumentTypes": null, - "id": 3712, + "id": 4063, "isConstant": false, "isLValue": false, "isPure": false, @@ -10673,26 +10569,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3708, + "id": 4059, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9527:13:25", + "referencedDeclaration": 3396, + "src": "9923:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3710, + "id": 4061, "indexExpression": { "argumentTypes": null, - "id": 3709, + "id": 4060, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9541:16:25", + "referencedDeclaration": 3381, + "src": "9937:16:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10703,7 +10599,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9527:31:25", + "src": "9923:31:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -10713,39 +10609,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3711, + "id": 4062, "name": "MOCKS_LIST_END", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "9561:14:25", + "referencedDeclaration": 3384, + "src": "9957:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } }, - "src": "9527:48:25", + "src": "9923:48:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3713, + "id": 4064, "nodeType": "ExpressionStatement", - "src": "9527:48:25" + "src": "9923:48:26" }, { "assignments": [ - 3715 + 4066 ], "declarations": [ { "constant": false, - "id": 3715, + "id": 4066, "name": "nextAnyMock", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9613:18:25", + "scope": 4134, + "src": "10009:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10753,10 +10649,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3714, + "id": 4065, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "9613:6:25", + "src": "10009:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -10766,31 +10662,31 @@ "visibility": "internal" } ], - "id": 3719, + "id": 4070, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3716, + "id": 4067, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9634:13:25", + "referencedDeclaration": 3416, + "src": "10030:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3718, + "id": 4069, "indexExpression": { "argumentTypes": null, - "id": 3717, + "id": 4068, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9648:18:25", + "referencedDeclaration": 3392, + "src": "10044:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -10801,33 +10697,33 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9634:33:25", + "src": "10030:33:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", - "src": "9613:54:25" + "src": "10009:54:26" }, { "body": { - "id": 3758, + "id": 4109, "nodeType": "Block", - "src": "9712:316:25", + "src": "10108:316:26", "statements": [ { "assignments": [ - 3724 + 4075 ], "declarations": [ { "constant": false, - "id": 3724, + "id": 4075, "name": "currentAnyMock", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9717:21:25", + "scope": 4109, + "src": "10113:21:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10835,10 +10731,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3723, + "id": 4074, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "9717:6:25", + "src": "10113:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -10848,27 +10744,27 @@ "visibility": "internal" } ], - "id": 3726, + "id": 4077, "initialValue": { "argumentTypes": null, - "id": 3725, + "id": 4076, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9741:11:25", + "referencedDeclaration": 4066, + "src": "10137:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", - "src": "9717:35:25" + "src": "10113:35:26" }, { "expression": { "argumentTypes": null, - "id": 3732, + "id": 4083, "isConstant": false, "isLValue": false, "isPure": false, @@ -10877,26 +10773,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3727, + "id": 4078, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "9757:17:25", + "referencedDeclaration": 3420, + "src": "10153:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3729, + "id": 4080, "indexExpression": { "argumentTypes": null, - "id": 3728, + "id": 4079, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9775:14:25", + "referencedDeclaration": 4075, + "src": "10171:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -10907,9 +10803,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9757:33:25", + "src": "10153:33:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -10919,18 +10815,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3730, + "id": 4081, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9793:8:25", + "referencedDeclaration": 3378, + "src": "10189:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3731, + "id": 4082, "isConstant": false, "isLValue": false, "isPure": true, @@ -10938,26 +10834,26 @@ "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9793:15:25", + "src": "10189:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "9757:51:25", + "src": "10153:51:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3733, + "id": 4084, "nodeType": "ExpressionStatement", - "src": "9757:51:25" + "src": "10153:51:26" }, { "expression": { "argumentTypes": null, - "id": 3738, + "id": 4089, "isConstant": false, "isLValue": false, "isPure": false, @@ -10966,26 +10862,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3734, + "id": 4085, "name": "methodIdExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "9813:20:25", + "referencedDeclaration": 3424, + "src": "10209:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes storage ref)" } }, - "id": 3736, + "id": 4087, "indexExpression": { "argumentTypes": null, - "id": 3735, + "id": 4086, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9834:14:25", + "referencedDeclaration": 4075, + "src": "10230:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -10996,7 +10892,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9813:36:25", + "src": "10209:36:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -11007,14 +10903,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3737, + "id": 4088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9852:5:25", + "src": "10248:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -11022,20 +10918,20 @@ }, "value": "" }, - "src": "9813:44:25", + "src": "10209:44:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3739, + "id": 4090, "nodeType": "ExpressionStatement", - "src": "9813:44:25" + "src": "10209:44:26" }, { "expression": { "argumentTypes": null, - "id": 3744, + "id": 4095, "isConstant": false, "isLValue": false, "isPure": false, @@ -11044,26 +10940,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3740, + "id": 4091, "name": "methodIdRevertMessages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "9862:22:25", + "referencedDeclaration": 3428, + "src": "10258:22:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string storage ref)" } }, - "id": 3742, + "id": 4093, "indexExpression": { "argumentTypes": null, - "id": 3741, + "id": 4092, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9885:14:25", + "referencedDeclaration": 4075, + "src": "10281:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11074,7 +10970,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9862:38:25", + "src": "10258:38:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -11085,14 +10981,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3743, + "id": 4094, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9903:2:25", + "src": "10299:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -11100,32 +10996,32 @@ }, "value": "" }, - "src": "9862:43:25", + "src": "10258:43:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3745, + "id": 4096, "nodeType": "ExpressionStatement", - "src": "9862:43:25" + "src": "10258:43:26" }, { "expression": { "argumentTypes": null, - "id": 3750, + "id": 4101, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3746, + "id": 4097, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9910:11:25", + "referencedDeclaration": 4066, + "src": "10306:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11137,26 +11033,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3747, + "id": 4098, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9924:13:25", + "referencedDeclaration": 3416, + "src": "10320:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3749, + "id": 4100, "indexExpression": { "argumentTypes": null, - "id": 3748, + "id": 4099, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9938:14:25", + "referencedDeclaration": 4075, + "src": "10334:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11167,26 +11063,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9924:29:25", + "src": "10320:29:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "9910:43:25", + "src": "10306:43:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3751, + "id": 4102, "nodeType": "ExpressionStatement", - "src": "9910:43:25" + "src": "10306:43:26" }, { "expression": { "argumentTypes": null, - "id": 3756, + "id": 4107, "isConstant": false, "isLValue": false, "isPure": false, @@ -11195,26 +11091,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3752, + "id": 4103, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9988:13:25", + "referencedDeclaration": 3416, + "src": "10384:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3754, + "id": 4105, "indexExpression": { "argumentTypes": null, - "id": 3753, + "id": 4104, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "10002:14:25", + "referencedDeclaration": 4075, + "src": "10398:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11225,7 +11121,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9988:29:25", + "src": "10384:29:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11236,14 +11132,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "307830", - "id": 3755, + "id": 4106, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10020:3:25", + "src": "10416:3:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11251,15 +11147,15 @@ }, "value": "0x0" }, - "src": "9988:35:25", + "src": "10384:35:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3757, + "id": 4108, "nodeType": "ExpressionStatement", - "src": "9988:35:25" + "src": "10384:35:26" } ] }, @@ -11269,19 +11165,19 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 3722, + "id": 4073, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3720, + "id": 4071, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9677:11:25", + "referencedDeclaration": 4066, + "src": "10073:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11291,31 +11187,31 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 3721, + "id": 4072, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9692:18:25", + "referencedDeclaration": 3392, + "src": "10088:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "9677:33:25", + "src": "10073:33:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3759, + "id": 4110, "nodeType": "WhileStatement", - "src": "9671:357:25" + "src": "10067:357:26" }, { "expression": { "argumentTypes": null, - "id": 3764, + "id": 4115, "isConstant": false, "isLValue": false, "isPure": false, @@ -11324,26 +11220,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3760, + "id": 4111, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "10047:13:25", + "referencedDeclaration": 3416, + "src": "10443:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3762, + "id": 4113, "indexExpression": { "argumentTypes": null, - "id": 3761, + "id": 4112, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10061:18:25", + "referencedDeclaration": 3392, + "src": "10457:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11354,7 +11250,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "10047:33:25", + "src": "10443:33:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11364,43 +11260,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3763, + "id": 4114, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10083:18:25", + "referencedDeclaration": 3392, + "src": "10479:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "10047:54:25", + "src": "10443:54:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3765, + "id": 4116, "nodeType": "ExpressionStatement", - "src": "10047:54:25" + "src": "10443:54:26" }, { "expression": { "argumentTypes": null, - "id": 3768, + "id": 4119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3766, + "id": 4117, "name": "fallbackExpectation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "10106:19:25", + "referencedDeclaration": 3436, + "src": "10502:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -11411,14 +11307,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3767, + "id": 4118, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10128:2:25", + "src": "10524:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -11426,34 +11322,34 @@ }, "value": "" }, - "src": "10106:24:25", + "src": "10502:24:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3769, + "id": 4120, "nodeType": "ExpressionStatement", - "src": "10106:24:25" + "src": "10502:24:26" }, { "expression": { "argumentTypes": null, - "id": 3773, + "id": 4124, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3770, + "id": 4121, "name": "fallbackMockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "10134:16:25", + "referencedDeclaration": 3434, + "src": "10530:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -11463,18 +11359,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3771, + "id": 4122, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "10153:8:25", + "referencedDeclaration": 3378, + "src": "10549:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3772, + "id": 4123, "isConstant": false, "isLValue": false, "isPure": true, @@ -11482,38 +11378,38 @@ "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10153:15:25", + "src": "10549:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "10134:34:25", + "src": "10530:34:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3774, + "id": 4125, "nodeType": "ExpressionStatement", - "src": "10134:34:25" + "src": "10530:34:26" }, { "expression": { "argumentTypes": null, - "id": 3777, + "id": 4128, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3775, + "id": 4126, "name": "invocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "10172:11:25", + "referencedDeclaration": 3440, + "src": "10568:11:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11524,14 +11420,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 3776, + "id": 4127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10186:1:25", + "src": "10582:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11539,32 +11435,32 @@ }, "value": "0" }, - "src": "10172:15:25", + "src": "10568:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3778, + "id": 4129, "nodeType": "ExpressionStatement", - "src": "10172:15:25" + "src": "10568:15:26" }, { "expression": { "argumentTypes": null, - "id": 3781, + "id": 4132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3779, + "id": 4130, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "10191:10:25", + "referencedDeclaration": 3442, + "src": "10587:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11575,14 +11471,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3780, + "id": 4131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10205:1:25", + "src": "10601:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -11590,67 +11486,67 @@ }, "value": "1" }, - "src": "10191:15:25", + "src": "10587:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3782, + "id": 4133, "nodeType": "ExpressionStatement", - "src": "10191:15:25" + "src": "10587:15:26" } ] }, "documentation": null, - "id": 3784, + "id": 4135, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "reset", "nodeType": "FunctionDefinition", "parameters": { - "id": 3652, + "id": 4003, "nodeType": "ParameterList", "parameters": [], - "src": "8933:2:25" + "src": "9329:2:26" }, - "payable": false, "returnParameters": { - "id": 3653, + "id": 4004, "nodeType": "ParameterList", "parameters": [], - "src": "8945:0:25" + "src": "9341:0:26" }, - "scope": 4000, - "src": "8919:1291:25", + "scope": 4351, + "src": "9315:1291:26", "stateMutability": "nonpayable", - "superFunction": 3020, + "superFunction": 3371, "visibility": "external" }, { "body": { - "id": 3794, + "id": 4145, "nodeType": "Block", - "src": "10242:157:25", + "src": "10638:157:26", "statements": [ { "body": { - "id": 3792, + "id": 4143, "nodeType": "Block", - "src": "10258:138:25", + "src": "10654:138:26", "statements": [ { - "assignments": [], + "assignments": [ + 4140 + ], "declarations": [ { "constant": false, - "id": 3789, + "id": 4140, "name": "s", "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "10263:6:25", + "scope": 4143, + "src": "10659:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11658,10 +11554,10 @@ "typeString": "bool" }, "typeName": { - "id": 3788, + "id": 4139, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "10263:4:25", + "src": "10659:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11671,41 +11567,41 @@ "visibility": "internal" } ], - "id": 3790, + "id": 4141, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "10263:6:25" + "src": "10659:6:26" }, { "externalReferences": [ { "s": { - "declaration": 3789, + "declaration": 4140, "isOffset": false, "isSlot": false, - "src": "10334:1:25", + "src": "10730:1:26", "valueSize": 1 } } ], - "id": 3791, + "id": 4142, "nodeType": "InlineAssembly", "operations": "{\n s := call(sub(gas(), 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n}", - "src": "10274:122:25" + "src": "10670:122:26" } ] }, "condition": { "argumentTypes": null, "hexValue": "74727565", - "id": 3787, + "id": 4138, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10252:4:25", + "src": "10648:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11713,55 +11609,55 @@ }, "value": "true" }, - "id": 3793, + "id": 4144, "nodeType": "WhileStatement", - "src": "10246:150:25" + "src": "10642:150:26" } ] }, "documentation": null, - "id": 3795, + "id": 4146, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "useAllGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 3785, + "id": 4136, "nodeType": "ParameterList", "parameters": [], - "src": "10231:2:25" + "src": "10627:2:26" }, - "payable": false, "returnParameters": { - "id": 3786, + "id": 4137, "nodeType": "ParameterList", "parameters": [], - "src": "10242:0:25" + "src": "10638:0:26" }, - "scope": 4000, - "src": "10213:186:25", + "scope": 4351, + "src": "10609:186:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3834, + "id": 4185, "nodeType": "Block", - "src": "10464:122:25", + "src": "10867:122:26", "statements": [ { - "assignments": [], + "assignments": [ + 4154 + ], "declarations": [ { "constant": false, - "id": 3803, + "id": 4154, "name": "out", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10470:10:25", + "scope": 4185, + "src": "10873:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11769,10 +11665,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3802, + "id": 4153, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "10470:6:25", + "src": "10873:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11782,33 +11678,33 @@ "visibility": "internal" } ], - "id": 3804, + "id": 4155, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "10470:10:25" + "src": "10873:10:26" }, { "body": { - "id": 3830, + "id": 4181, "nodeType": "Block", - "src": "10515:52:25", + "src": "10918:52:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3828, + "id": 4179, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3815, + "id": 4166, "name": "out", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10523:3:25", + "referencedDeclaration": 4154, + "src": "10926:3:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11822,7 +11718,7 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 3827, + "id": 4178, "isConstant": false, "isLValue": false, "isPure": false, @@ -11836,7 +11732,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 3821, + "id": 4172, "isConstant": false, "isLValue": false, "isPure": false, @@ -11845,26 +11741,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3817, + "id": 4168, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "10537:1:25", + "referencedDeclaration": 4148, + "src": "10940:1:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3819, + "id": 4170, "indexExpression": { "argumentTypes": null, - "id": 3818, + "id": 4169, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10539:1:25", + "referencedDeclaration": 4157, + "src": "10942:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11875,7 +11771,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10537:4:25", + "src": "10940:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -11886,14 +11782,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30784646", - "id": 3820, + "id": 4171, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10544:4:25", + "src": "10947:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", @@ -11901,7 +11797,7 @@ }, "value": "0xFF" }, - "src": "10537:11:25", + "src": "10940:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -11915,20 +11811,20 @@ "typeString": "bytes1" } ], - "id": 3816, + "id": 4167, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10530:6:25", + "src": "10933:6:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes4_$", "typeString": "type(bytes4)" }, "typeName": "bytes4" }, - "id": 3822, + "id": 4173, "isConstant": false, "isLValue": false, "isPure": false, @@ -11936,7 +11832,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10530:19:25", + "src": "10933:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11953,19 +11849,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3825, + "id": 4176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3823, + "id": 4174, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10554:1:25", + "referencedDeclaration": 4157, + "src": "10957:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11976,14 +11872,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "38", - "id": 3824, + "id": 4175, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10558:1:25", + "src": "10961:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", @@ -11991,41 +11887,41 @@ }, "value": "8" }, - "src": "10554:5:25", + "src": "10957:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3826, + "id": 4177, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10553:7:25", + "src": "10956:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10530:30:25", + "src": "10933:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "10523:37:25", + "src": "10926:37:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3829, + "id": 4180, "nodeType": "ExpressionStatement", - "src": "10523:37:25" + "src": "10926:37:26" } ] }, @@ -12035,19 +11931,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3811, + "id": 4162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3809, + "id": 4160, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10503:1:25", + "referencedDeclaration": 4157, + "src": "10906:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12058,14 +11954,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "34", - "id": 3810, + "id": 4161, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10507:1:25", + "src": "10910:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -12073,25 +11969,25 @@ }, "value": "4" }, - "src": "10503:5:25", + "src": "10906:5:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3831, + "id": 4182, "initializationExpression": { "assignments": [ - 3806 + 4157 ], "declarations": [ { "constant": false, - "id": 3806, + "id": 4157, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10491:6:25", + "scope": 4182, + "src": "10894:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12099,10 +11995,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3805, + "id": 4156, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10491:4:25", + "src": "10894:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12112,18 +12008,18 @@ "visibility": "internal" } ], - "id": 3808, + "id": 4159, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 3807, + "id": 4158, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10500:1:25", + "src": "10903:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12132,12 +12028,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "10491:10:25" + "src": "10894:10:26" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 3813, + "id": 4164, "isConstant": false, "isLValue": false, "isPure": false, @@ -12145,15 +12041,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "10510:3:25", + "src": "10913:3:26", "subExpression": { "argumentTypes": null, - "id": 3812, + "id": 4163, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10510:1:25", + "referencedDeclaration": 4157, + "src": "10913:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12164,64 +12060,63 @@ "typeString": "uint256" } }, - "id": 3814, + "id": 4165, "nodeType": "ExpressionStatement", - "src": "10510:3:25" + "src": "10913:3:26" }, "nodeType": "ForStatement", - "src": "10486:81:25" + "src": "10889:81:26" }, { "expression": { "argumentTypes": null, - "id": 3832, + "id": 4183, "name": "out", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10579:3:25", + "referencedDeclaration": 4154, + "src": "10982:3:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "functionReturnParameters": 3801, - "id": 3833, + "functionReturnParameters": 4152, + "id": 4184, "nodeType": "Return", - "src": "10572:10:25" + "src": "10975:10:26" } ] }, "documentation": null, - "id": 3835, + "id": 4186, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "bytesToBytes4", "nodeType": "FunctionDefinition", "parameters": { - "id": 3798, + "id": 4149, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3797, + "id": 4148, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10425:7:25", + "scope": 4186, + "src": "10821:14:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3796, + "id": 4147, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10425:5:25", + "src": "10821:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -12231,20 +12126,19 @@ "visibility": "internal" } ], - "src": "10424:9:25" + "src": "10820:16:26" }, - "payable": false, "returnParameters": { - "id": 3801, + "id": 4152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3800, + "id": 4151, "name": "", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10456:6:25", + "scope": 4186, + "src": "10859:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12252,10 +12146,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3799, + "id": 4150, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "10456:6:25", + "src": "10859:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -12265,67 +12159,66 @@ "visibility": "internal" } ], - "src": "10455:8:25" + "src": "10858:8:26" }, - "scope": 4000, - "src": "10402:184:25", + "scope": 4351, + "src": "10798:191:26", "stateMutability": "pure", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3843, + "id": 4194, "nodeType": "Block", - "src": "10654:189:25", + "src": "11064:189:26", "statements": [ { "externalReferences": [ { "b": { - "declaration": 3840, + "declaration": 4191, "isOffset": false, "isSlot": false, - "src": "10827:1:25", + "src": "11237:1:26", "valueSize": 1 } }, { "a": { - "declaration": 3837, + "declaration": 4188, "isOffset": false, "isSlot": false, - "src": "10780:1:25", + "src": "11190:1:26", "valueSize": 1 } } ], - "id": 3842, + "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": "10661:182:25" + "src": "11071:182:26" } ] }, "documentation": null, - "id": 3844, + "id": 4195, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "addressToBytes", "nodeType": "FunctionDefinition", "parameters": { - "id": 3838, + "id": 4189, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3837, + "id": 4188, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10613:9:25", + "scope": 4195, + "src": "11016:9:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12333,10 +12226,11 @@ "typeString": "address" }, "typeName": { - "id": 3836, + "id": 4187, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10613:7:25", + "src": "11016:7:26", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12346,31 +12240,30 @@ "visibility": "internal" } ], - "src": "10612:11:25" + "src": "11015:11:26" }, - "payable": false, "returnParameters": { - "id": 3841, + "id": 4192, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3840, + "id": 4191, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10646:7:25", + "scope": 4195, + "src": "11049:14:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3839, + "id": 4190, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10646:5:25", + "src": "11049:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -12380,36 +12273,36 @@ "visibility": "internal" } ], - "src": "10645:9:25" + "src": "11048:16:26" }, - "scope": 4000, - "src": "10589:254:25", + "scope": 4351, + "src": "10992:261:26", "stateMutability": "pure", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3859, + "id": 4210, "nodeType": "Block", - "src": "10909:68:25", + "src": "11326:68:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3856, + "id": 4207, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3851, + "id": 4202, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3849, - "src": "10916:1:25", + "referencedDeclaration": 4200, + "src": "11333:1:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -12423,14 +12316,14 @@ { "argumentTypes": null, "hexValue": "3332", - "id": 3854, + "id": 4205, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10930:2:25", + "src": "11347:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -12446,29 +12339,29 @@ "typeString": "int_const 32" } ], - "id": 3853, + "id": 4204, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "10920:9:25", + "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": 3852, + "id": 4203, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10924:5:25", + "src": "11341:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, - "id": 3855, + "id": 4206, "isConstant": false, "isLValue": false, "isPure": true, @@ -12476,69 +12369,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10920:13:25", + "src": "11337:13:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } }, - "src": "10916:17:25", + "src": "11333:17:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3857, + "id": 4208, "nodeType": "ExpressionStatement", - "src": "10916:17:25" + "src": "11333:17:26" }, { "externalReferences": [ { "x": { - "declaration": 3846, + "declaration": 4197, "isOffset": false, "isSlot": false, - "src": "10970:1:25", + "src": "11387:1:26", "valueSize": 1 } }, { "b": { - "declaration": 3849, + "declaration": 4200, "isOffset": false, "isSlot": false, - "src": "10962:1:25", + "src": "11379:1:26", "valueSize": 1 } } ], - "id": 3858, + "id": 4209, "nodeType": "InlineAssembly", "operations": "{\n mstore(add(b, 32), x)\n}", - "src": "10940:37:25" + "src": "11357:37:26" } ] }, "documentation": null, - "id": 3860, + "id": 4211, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "uintToBytes", "nodeType": "FunctionDefinition", "parameters": { - "id": 3847, + "id": 4198, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3846, + "id": 4197, "name": "x", "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10867:9:25", + "scope": 4211, + "src": "11277:9:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12546,10 +12438,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3845, + "id": 4196, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10867:7:25", + "src": "11277:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12559,31 +12451,30 @@ "visibility": "internal" } ], - "src": "10866:11:25" + "src": "11276:11:26" }, - "payable": false, "returnParameters": { - "id": 3850, + "id": 4201, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3849, + "id": 4200, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10900:7:25", + "scope": 4211, + "src": "11310:14:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3848, + "id": 4199, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10900:5:25", + "src": "11310:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -12593,30 +12484,32 @@ "visibility": "internal" } ], - "src": "10899:9:25" + "src": "11309:16:26" }, - "scope": 4000, - "src": "10846:131:25", + "scope": 4351, + "src": "11256:138:26", "stateMutability": "pure", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3998, + "id": 4349, "nodeType": "Block", - "src": "11008:1178:25", + "src": "11425:1178:26", "statements": [ { - "assignments": [], + "assignments": [ + 4215 + ], "declarations": [ { "constant": false, - "id": 3864, + "id": 4215, "name": "methodId", "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11012:15:25", + "scope": 4349, + "src": "11429:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12624,10 +12517,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3863, + "id": 4214, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "11012:6:25", + "src": "11429:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -12637,36 +12530,36 @@ "visibility": "internal" } ], - "id": 3865, + "id": 4216, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "11012:15:25" + "src": "11429:15:26" }, { "externalReferences": [ { "methodId": { - "declaration": 3864, + "declaration": 4215, "isOffset": false, "isSlot": false, - "src": "11045:8:25", + "src": "11462:8:26", "valueSize": 1 } } ], - "id": 3866, + "id": 4217, "nodeType": "InlineAssembly", "operations": "{\n methodId := calldataload(0)\n}", - "src": "11031:94:25" + "src": "11448:94:26" }, { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3873, + "id": 4224, "isConstant": false, "isLValue": false, "isPure": false, @@ -12675,34 +12568,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3867, + "id": 4218, "name": "calldataMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11127:17:25", + "referencedDeclaration": 3400, + "src": "11544:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, - "id": 3870, + "id": 4221, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3868, + "id": 4219, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11145:3:25", + "referencedDeclaration": 4366, + "src": "11562:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3869, + "id": 4220, "isConstant": false, "isLValue": false, "isPure": false, @@ -12710,7 +12603,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11145:8:25", + "src": "11562:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -12721,9 +12614,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11127:27:25", + "src": "11544:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -12733,18 +12626,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3871, + "id": 4222, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11158:8:25", + "referencedDeclaration": 3378, + "src": "11575:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3872, + "id": 4223, "isConstant": false, "isLValue": false, "isPure": true, @@ -12752,26 +12645,26 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11158:15:25", + "src": "11575:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11127:46:25", + "src": "11544:46:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3882, + "id": 4233, "nodeType": "IfStatement", - "src": "11123:101:25", + "src": "11540:101:26", "trueBody": { - "id": 3881, + "id": 4232, "nodeType": "Block", - "src": "11175:49:25", + "src": "11592:49:26", "statements": [ { "expression": { @@ -12781,34 +12674,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3875, + "id": 4226, "name": "calldataRevertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "11187:21:25", + "referencedDeclaration": 3408, + "src": "11604:21:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, - "id": 3878, + "id": 4229, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3876, + "id": 4227, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11209:3:25", + "referencedDeclaration": 4366, + "src": "11626:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3877, + "id": 4228, "isConstant": false, "isLValue": false, "isPure": false, @@ -12816,7 +12709,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11209:8:25", + "src": "11626:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -12827,7 +12720,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11187:31:25", + "src": "11604:31:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -12841,21 +12734,21 @@ "typeString": "string storage ref" } ], - "id": 3874, + "id": 4225, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4021, - "src": "11180:6:25", + "referencedDeclaration": 4372, + "src": "11597:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 3879, + "id": 4230, "isConstant": false, "isLValue": false, "isPure": false, @@ -12863,15 +12756,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11180:39:25", + "src": "11597:39:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3880, + "id": 4231, "nodeType": "ExpressionStatement", - "src": "11180:39:25" + "src": "11597:39:26" } ] } @@ -12880,10 +12773,10 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3889, + "id": 4240, "isConstant": false, "isLValue": false, "isPure": false, @@ -12892,34 +12785,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3883, + "id": 4234, "name": "calldataMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11231:17:25", + "referencedDeclaration": 3400, + "src": "11648:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, - "id": 3886, + "id": 4237, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3884, + "id": 4235, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11249:3:25", + "referencedDeclaration": 4366, + "src": "11666:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3885, + "id": 4236, "isConstant": false, "isLValue": false, "isPure": false, @@ -12927,7 +12820,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11249:8:25", + "src": "11666:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -12938,9 +12831,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11231:27:25", + "src": "11648:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -12950,18 +12843,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3887, + "id": 4238, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11262:8:25", + "referencedDeclaration": 3378, + "src": "11679:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3888, + "id": 4239, "isConstant": false, "isLValue": false, "isPure": true, @@ -12969,26 +12862,26 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11262:17:25", + "src": "11679:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11231:48:25", + "src": "11648:48:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3894, + "id": 4245, "nodeType": "IfStatement", - "src": "11227:75:25", + "src": "11644:75:26", "trueBody": { - "id": 3893, + "id": 4244, "nodeType": "Block", - "src": "11281:21:25", + "src": "11698:21:26", "statements": [ { "expression": { @@ -12996,18 +12889,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3890, + "id": 4241, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11286:9:25", + "referencedDeclaration": 4146, + "src": "11703:9:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3891, + "id": 4242, "isConstant": false, "isLValue": false, "isPure": false, @@ -13015,31 +12908,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11286:11:25", + "src": "11703:11:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3892, + "id": 4243, "nodeType": "ExpressionStatement", - "src": "11286:11:25" + "src": "11703:11:26" } ] } }, { "assignments": [ - 3896 + 4247 ], "declarations": [ { "constant": false, - "id": 3896, + "id": 4247, "name": "result", "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11305:19:25", + "scope": 4349, + "src": "11722:19:26", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13047,10 +12940,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3895, + "id": 4246, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11305:5:25", + "src": "11722:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -13060,39 +12953,39 @@ "visibility": "internal" } ], - "id": 3901, + "id": 4252, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3897, + "id": 4248, "name": "calldataExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "11327:20:25", + "referencedDeclaration": 3404, + "src": "11744:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes memory => bytes storage ref)" } }, - "id": 3900, + "id": 4251, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3898, + "id": 4249, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11348:3:25", + "referencedDeclaration": 4366, + "src": "11765:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3899, + "id": 4250, "isConstant": false, "isLValue": false, "isPure": false, @@ -13100,7 +12993,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11348:8:25", + "src": "11765:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -13111,14 +13004,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11327:30:25", + "src": "11744:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "11305:52:25" + "src": "11722:52:26" }, { "condition": { @@ -13127,7 +13020,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3905, + "id": 4256, "isConstant": false, "isLValue": false, "isPure": false, @@ -13136,18 +13029,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3902, + "id": 4253, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11402:6:25", + "referencedDeclaration": 4247, + "src": "11819:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3903, + "id": 4254, "isConstant": false, "isLValue": false, "isPure": false, @@ -13155,7 +13048,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11402:13:25", + "src": "11819:13:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13166,14 +13059,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3904, + "id": 4255, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11419:1:25", + "src": "11836:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13181,29 +13074,29 @@ }, "value": "0" }, - "src": "11402:18:25", + "src": "11819:18:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3938, + "id": 4289, "nodeType": "IfStatement", - "src": "11398:262:25", + "src": "11815:262:26", "trueBody": { - "id": 3937, + "id": 4288, "nodeType": "Block", - "src": "11422:238:25", + "src": "11839:238:26", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3911, + "id": 4262, "isConstant": false, "isLValue": false, "isPure": false, @@ -13212,26 +13105,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3906, + "id": 4257, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11431:17:25", + "referencedDeclaration": 3420, + "src": "11848:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3908, + "id": 4259, "indexExpression": { "argumentTypes": null, - "id": 3907, + "id": 4258, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11449:8:25", + "referencedDeclaration": 4215, + "src": "11866:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -13242,9 +13135,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11431:27:25", + "src": "11848:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -13254,18 +13147,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3909, + "id": 4260, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11462:8:25", + "referencedDeclaration": 3378, + "src": "11879:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3910, + "id": 4261, "isConstant": false, "isLValue": false, "isPure": true, @@ -13273,26 +13166,26 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11462:15:25", + "src": "11879:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11431:46:25", + "src": "11848:46:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3919, + "id": 4270, "nodeType": "IfStatement", - "src": "11427:104:25", + "src": "11844:104:26", "trueBody": { - "id": 3918, + "id": 4269, "nodeType": "Block", - "src": "11479:52:25", + "src": "11896:52:26", "statements": [ { "expression": { @@ -13302,26 +13195,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3913, + "id": 4264, "name": "methodIdRevertMessages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "11492:22:25", + "referencedDeclaration": 3428, + "src": "11909:22:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string storage ref)" } }, - "id": 3915, + "id": 4266, "indexExpression": { "argumentTypes": null, - "id": 3914, + "id": 4265, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11515:8:25", + "referencedDeclaration": 4215, + "src": "11932:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -13332,7 +13225,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11492:32:25", + "src": "11909:32:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -13346,21 +13239,21 @@ "typeString": "string storage ref" } ], - "id": 3912, + "id": 4263, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4021, - "src": "11485:6:25", + "referencedDeclaration": 4372, + "src": "11902:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 3916, + "id": 4267, "isConstant": false, "isLValue": false, "isPure": false, @@ -13368,15 +13261,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11485:40:25", + "src": "11902:40:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3917, + "id": 4268, "nodeType": "ExpressionStatement", - "src": "11485:40:25" + "src": "11902:40:26" } ] } @@ -13385,10 +13278,10 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3925, + "id": 4276, "isConstant": false, "isLValue": false, "isPure": false, @@ -13397,26 +13290,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3920, + "id": 4271, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11539:17:25", + "referencedDeclaration": 3420, + "src": "11956:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3922, + "id": 4273, "indexExpression": { "argumentTypes": null, - "id": 3921, + "id": 4272, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11557:8:25", + "referencedDeclaration": 4215, + "src": "11974:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -13427,9 +13320,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11539:27:25", + "src": "11956:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -13439,18 +13332,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3923, + "id": 4274, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11570:8:25", + "referencedDeclaration": 3378, + "src": "11987:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3924, + "id": 4275, "isConstant": false, "isLValue": false, "isPure": true, @@ -13458,26 +13351,26 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11570:17:25", + "src": "11987:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11539:48:25", + "src": "11956:48:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3930, + "id": 4281, "nodeType": "IfStatement", - "src": "11535:77:25", + "src": "11952:77:26", "trueBody": { - "id": 3929, + "id": 4280, "nodeType": "Block", - "src": "11589:23:25", + "src": "12006:23:26", "statements": [ { "expression": { @@ -13485,18 +13378,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3926, + "id": 4277, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11595:9:25", + "referencedDeclaration": 4146, + "src": "12012:9:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3927, + "id": 4278, "isConstant": false, "isLValue": false, "isPure": false, @@ -13504,15 +13397,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11595:11:25", + "src": "12012:11:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3928, + "id": 4279, "nodeType": "ExpressionStatement", - "src": "11595:11:25" + "src": "12012:11:26" } ] } @@ -13520,19 +13413,19 @@ { "expression": { "argumentTypes": null, - "id": 3935, + "id": 4286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3931, + "id": 4282, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11616:6:25", + "referencedDeclaration": 4247, + "src": "12033:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -13544,26 +13437,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3932, + "id": 4283, "name": "methodIdExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "11625:20:25", + "referencedDeclaration": 3424, + "src": "12042:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes storage ref)" } }, - "id": 3934, + "id": 4285, "indexExpression": { "argumentTypes": null, - "id": 3933, + "id": 4284, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11646:8:25", + "referencedDeclaration": 4215, + "src": "12063:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -13574,21 +13467,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11625:30:25", + "src": "12042:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "src": "11616:39:25", + "src": "12033:39:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3936, + "id": 4287, "nodeType": "ExpressionStatement", - "src": "11616:39:25" + "src": "12033:39:26" } ] } @@ -13600,7 +13493,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3942, + "id": 4293, "isConstant": false, "isLValue": false, "isPure": false, @@ -13609,18 +13502,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3939, + "id": 4290, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11705:6:25", + "referencedDeclaration": 4247, + "src": "12122:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3940, + "id": 4291, "isConstant": false, "isLValue": false, "isPure": false, @@ -13628,7 +13521,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11705:13:25", + "src": "12122:13:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13639,14 +13532,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3941, + "id": 4292, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11722:1:25", + "src": "12139:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13654,43 +13547,43 @@ }, "value": "0" }, - "src": "11705:18:25", + "src": "12122:18:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3967, + "id": 4318, "nodeType": "IfStatement", - "src": "11701:218:25", + "src": "12118:218:26", "trueBody": { - "id": 3966, + "id": 4317, "nodeType": "Block", - "src": "11725:194:25", + "src": "12142:194:26", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3946, + "id": 4297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3943, + "id": 4294, "name": "fallbackMockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11734:16:25", + "referencedDeclaration": 3434, + "src": "12151:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -13700,18 +13593,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3944, + "id": 4295, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11754:8:25", + "referencedDeclaration": 3378, + "src": "12171:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3945, + "id": 4296, "isConstant": false, "isLValue": false, "isPure": true, @@ -13719,26 +13612,26 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11754:15:25", + "src": "12171:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11734:35:25", + "src": "12151:35:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3952, + "id": 4303, "nodeType": "IfStatement", - "src": "11730:82:25", + "src": "12147:82:26", "trueBody": { - "id": 3951, + "id": 4302, "nodeType": "Block", - "src": "11771:41:25", + "src": "12188:41:26", "statements": [ { "expression": { @@ -13746,12 +13639,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3948, + "id": 4299, "name": "fallbackRevertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "11784:21:25", + "referencedDeclaration": 3438, + "src": "12201:21:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -13765,21 +13658,21 @@ "typeString": "string storage ref" } ], - "id": 3947, + "id": 4298, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4021, - "src": "11777:6:25", + "referencedDeclaration": 4372, + "src": "12194:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 3949, + "id": 4300, "isConstant": false, "isLValue": false, "isPure": false, @@ -13787,15 +13680,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11777:29:25", + "src": "12194:29:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3950, + "id": 4301, "nodeType": "ExpressionStatement", - "src": "11777:29:25" + "src": "12194:29:26" } ] } @@ -13804,24 +13697,24 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3956, + "id": 4307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3953, + "id": 4304, "name": "fallbackMockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11820:16:25", + "referencedDeclaration": 3434, + "src": "12237:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -13831,18 +13724,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3954, + "id": 4305, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11840:8:25", + "referencedDeclaration": 3378, + "src": "12257:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3955, + "id": 4306, "isConstant": false, "isLValue": false, "isPure": true, @@ -13850,26 +13743,26 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11840:17:25", + "src": "12257:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11820:37:25", + "src": "12237:37:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3961, + "id": 4312, "nodeType": "IfStatement", - "src": "11816:66:25", + "src": "12233:66:26", "trueBody": { - "id": 3960, + "id": 4311, "nodeType": "Block", - "src": "11859:23:25", + "src": "12276:23:26", "statements": [ { "expression": { @@ -13877,18 +13770,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3957, + "id": 4308, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11865:9:25", + "referencedDeclaration": 4146, + "src": "12282:9:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3958, + "id": 4309, "isConstant": false, "isLValue": false, "isPure": false, @@ -13896,15 +13789,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11865:11:25", + "src": "12282:11:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3959, + "id": 4310, "nodeType": "ExpressionStatement", - "src": "11865:11:25" + "src": "12282:11:26" } ] } @@ -13912,19 +13805,19 @@ { "expression": { "argumentTypes": null, - "id": 3964, + "id": 4315, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3962, + "id": 4313, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11886:6:25", + "referencedDeclaration": 4247, + "src": "12303:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -13934,26 +13827,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3963, + "id": 4314, "name": "fallbackExpectation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "11895:19:25", + "referencedDeclaration": 3436, + "src": "12312:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "src": "11886:28:25", + "src": "12303:28:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3965, + "id": 4316, "nodeType": "ExpressionStatement", - "src": "11886:28:25" + "src": "12303:28:26" } ] } @@ -13961,19 +13854,19 @@ { "expression": { "argumentTypes": null, - "id": 3970, + "id": 4321, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3968, + "id": 4319, "name": "invocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "11946:11:25", + "referencedDeclaration": 3440, + "src": "12363:11:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13984,14 +13877,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3969, + "id": 4320, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11961:1:25", + "src": "12378:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -13999,20 +13892,20 @@ }, "value": "1" }, - "src": "11946:16:25", + "src": "12363:16:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3971, + "id": 4322, "nodeType": "ExpressionStatement", - "src": "11946:16:25" + "src": "12363:16:26" }, { "expression": { "argumentTypes": null, - "id": 3982, + "id": 4333, "isConstant": false, "isLValue": false, "isPure": false, @@ -14021,18 +13914,18 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3972, + "id": 4323, "name": "methodIdInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "11966:19:25", + "referencedDeclaration": 3432, + "src": "12383:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3980, + "id": 4331, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -14041,12 +13934,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3976, + "id": 4327, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12013:10:25", + "referencedDeclaration": 3442, + "src": "12430:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14054,12 +13947,12 @@ }, { "argumentTypes": null, - "id": 3977, + "id": 4328, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "12025:8:25", + "referencedDeclaration": 4215, + "src": "12442:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -14079,18 +13972,18 @@ ], "expression": { "argumentTypes": null, - "id": 3974, + "id": 4325, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "11996:3:25", + "referencedDeclaration": 4353, + "src": "12413:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3975, + "id": 4326, "isConstant": false, "isLValue": false, "isPure": true, @@ -14098,13 +13991,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11996:16:25", + "src": "12413:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3978, + "id": 4329, "isConstant": false, "isLValue": false, "isPure": false, @@ -14112,7 +14005,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11996:38:25", + "src": "12413:38:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -14126,18 +14019,18 @@ "typeString": "bytes memory" } ], - "id": 3973, + "id": 4324, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "11986:9:25", + "referencedDeclaration": 4360, + "src": "12403:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3979, + "id": 4330, "isConstant": false, "isLValue": false, "isPure": false, @@ -14145,7 +14038,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11986:49:25", + "src": "12403:49:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14156,7 +14049,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "11966:70:25", + "src": "12383:70:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14167,14 +14060,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3981, + "id": 4332, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12040:1:25", + "src": "12457:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -14182,20 +14075,20 @@ }, "value": "1" }, - "src": "11966:75:25", + "src": "12383:75:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3983, + "id": 4334, "nodeType": "ExpressionStatement", - "src": "11966:75:25" + "src": "12383:75:26" }, { "expression": { "argumentTypes": null, - "id": 3995, + "id": 4346, "isConstant": false, "isLValue": false, "isPure": false, @@ -14204,18 +14097,18 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3984, + "id": 4335, "name": "calldataInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "12045:19:25", + "referencedDeclaration": 3412, + "src": "12462:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3993, + "id": 4344, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -14224,12 +14117,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3988, + "id": 4339, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12092:10:25", + "referencedDeclaration": 3442, + "src": "12509:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14239,18 +14132,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3989, + "id": 4340, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "12104:3:25", + "referencedDeclaration": 4366, + "src": "12521:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3990, + "id": 4341, "isConstant": false, "isLValue": false, "isPure": false, @@ -14258,7 +14151,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12104:8:25", + "src": "12521:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -14278,18 +14171,18 @@ ], "expression": { "argumentTypes": null, - "id": 3986, + "id": 4337, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12075:3:25", + "referencedDeclaration": 4353, + "src": "12492:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3987, + "id": 4338, "isConstant": false, "isLValue": false, "isPure": true, @@ -14297,13 +14190,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12075:16:25", + "src": "12492:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3991, + "id": 4342, "isConstant": false, "isLValue": false, "isPure": false, @@ -14311,7 +14204,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12075:38:25", + "src": "12492:38:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -14325,18 +14218,18 @@ "typeString": "bytes memory" } ], - "id": 3985, + "id": 4336, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12065:9:25", + "referencedDeclaration": 4360, + "src": "12482:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3992, + "id": 4343, "isConstant": false, "isLValue": false, "isPure": false, @@ -14344,7 +14237,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12065:49:25", + "src": "12482:49:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14355,7 +14248,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "12045:70:25", + "src": "12462:70:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14366,14 +14259,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3994, + "id": 4345, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12119:1:25", + "src": "12536:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -14381,101 +14274,99 @@ }, "value": "1" }, - "src": "12045:75:25", + "src": "12462:75:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3996, + "id": 4347, "nodeType": "ExpressionStatement", - "src": "12045:75:25" + "src": "12462:75:26" }, { "externalReferences": [ { "result": { - "declaration": 3896, + "declaration": 4247, "isOffset": false, "isSlot": false, - "src": "12156:6:25", + "src": "12588:6:26", "valueSize": 1 } }, { "result": { - "declaration": 3896, + "declaration": 4247, "isOffset": false, "isSlot": false, - "src": "12171:6:25", + "src": "12573:6:26", "valueSize": 1 } } ], - "id": 3997, + "id": 4348, "nodeType": "InlineAssembly", "operations": "{\n return(add(0x20, result), mload(result))\n}", - "src": "12125:61:25" + "src": "12542:61:26" } ] }, "documentation": null, - "id": 3999, + "id": 4350, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "fallback", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3861, + "id": 4212, "nodeType": "ParameterList", "parameters": [], - "src": "10988:2:25" + "src": "11405:2:26" }, - "payable": true, "returnParameters": { - "id": 3862, + "id": 4213, "nodeType": "ParameterList", "parameters": [], - "src": "11008:0:25" + "src": "11425:0:26" }, - "scope": 4000, - "src": "10980:1206:25", + "scope": 4351, + "src": "11397:1206:26", "stateMutability": "payable", "superFunction": null, "visibility": "external" } ], - "scope": 4001, - "src": "3453:8735:25" + "scope": 4352, + "src": "3610:8995:26" } ], - "src": "0:12189:25" + "src": "0:12606:26" }, "legacyAST": { "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", "exportedSymbols": { "MockContract": [ - 4000 + 4351 ], "MockInterface": [ - 3021 + 3372 ] }, - "id": 4001, + "id": 4352, "nodeType": "SourceUnit", "nodes": [ { - "id": 2877, + "id": 3228, "literals": [ "solidity", "^", - "0.4", - ".23" + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:23:26" }, { "baseContracts": [], @@ -14483,9 +14374,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 3021, + "id": 3372, "linearizedBaseContracts": [ - 3021 + 3372 ], "name": "MockInterface", "nodeType": "ContractDefinition", @@ -14493,35 +14384,34 @@ { "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": 2882, + "id": 3233, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 2880, + "id": 3231, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2879, + "id": 3230, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2882, - "src": "358:14:25", + "scope": 3233, + "src": "357:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2878, + "id": 3229, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "358:5:25", + "src": "357:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -14531,17 +14421,16 @@ "visibility": "internal" } ], - "src": "357:16:25" + "src": "356:25:26" }, - "payable": false, "returnParameters": { - "id": 2881, + "id": 3232, "nodeType": "ParameterList", "parameters": [], - "src": "382:0:25" + "src": "390:0:26" }, - "scope": 3021, - "src": "334:49:25", + "scope": 3372, + "src": "333:58:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14549,24 +14438,23 @@ { "body": null, "documentation": null, - "id": 2887, + "id": 3238, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturnBool", "nodeType": "FunctionDefinition", "parameters": { - "id": 2885, + "id": 3236, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2884, + "id": 3235, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2887, - "src": "413:13:25", + "scope": 3238, + "src": "421:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14574,10 +14462,10 @@ "typeString": "bool" }, "typeName": { - "id": 2883, + "id": 3234, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "413:4:25", + "src": "421:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14587,17 +14475,16 @@ "visibility": "internal" } ], - "src": "412:15:25" + "src": "420:15:26" }, - "payable": false, "returnParameters": { - "id": 2886, + "id": 3237, "nodeType": "ParameterList", "parameters": [], - "src": "436:0:25" + "src": "444:0:26" }, - "scope": 3021, - "src": "385:52:25", + "scope": 3372, + "src": "393:52:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14605,24 +14492,23 @@ { "body": null, "documentation": null, - "id": 2892, + "id": 3243, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturnUint", "nodeType": "FunctionDefinition", "parameters": { - "id": 2890, + "id": 3241, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2889, + "id": 3240, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2892, - "src": "467:13:25", + "scope": 3243, + "src": "475:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14630,10 +14516,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2888, + "id": 3239, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "467:4:25", + "src": "475:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14643,17 +14529,16 @@ "visibility": "internal" } ], - "src": "466:15:25" + "src": "474:15:26" }, - "payable": false, "returnParameters": { - "id": 2891, + "id": 3242, "nodeType": "ParameterList", "parameters": [], - "src": "490:0:25" + "src": "498:0:26" }, - "scope": 3021, - "src": "439:52:25", + "scope": 3372, + "src": "447:52:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14661,24 +14546,23 @@ { "body": null, "documentation": null, - "id": 2897, + "id": 3248, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturnAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 2895, + "id": 3246, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2894, + "id": 3245, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2897, - "src": "524:16:25", + "scope": 3248, + "src": "532:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14686,10 +14570,11 @@ "typeString": "address" }, "typeName": { - "id": 2893, + "id": 3244, "name": "address", "nodeType": "ElementaryTypeName", - "src": "524:7:25", + "src": "532:7:26", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14699,17 +14584,16 @@ "visibility": "internal" } ], - "src": "523:18:25" + "src": "531:18:26" }, - "payable": false, "returnParameters": { - "id": 2896, + "id": 3247, "nodeType": "ParameterList", "parameters": [], - "src": "550:0:25" + "src": "558:0:26" }, - "scope": 3021, - "src": "493:58:25", + "scope": 3372, + "src": "501:58:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14717,28 +14601,26 @@ { "body": null, "documentation": null, - "id": 2900, + "id": 3251, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyRevert", "nodeType": "FunctionDefinition", "parameters": { - "id": 2898, + "id": 3249, "nodeType": "ParameterList", "parameters": [], - "src": "577:2:25" + "src": "585:2:26" }, - "payable": false, "returnParameters": { - "id": 2899, + "id": 3250, "nodeType": "ParameterList", "parameters": [], - "src": "588:0:25" + "src": "596:0:26" }, - "scope": 3021, - "src": "554:35:25", + "scope": 3372, + "src": "562:35:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14746,35 +14628,34 @@ { "body": null, "documentation": null, - "id": 2905, + "id": 3256, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyRevertWithMessage", "nodeType": "FunctionDefinition", "parameters": { - "id": 2903, + "id": 3254, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2902, + "id": 3253, "name": "message", "nodeType": "VariableDeclaration", - "scope": 2905, - "src": "626:14:25", + "scope": 3256, + "src": "634:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string" }, "typeName": { - "id": 2901, + "id": 3252, "name": "string", "nodeType": "ElementaryTypeName", - "src": "626:6:25", + "src": "634:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -14784,17 +14665,16 @@ "visibility": "internal" } ], - "src": "625:16:25" + "src": "633:25:26" }, - "payable": false, "returnParameters": { - "id": 2904, + "id": 3255, "nodeType": "ParameterList", "parameters": [], - "src": "650:0:25" + "src": "667:0:26" }, - "scope": 3021, - "src": "591:60:25", + "scope": 3372, + "src": "599:69:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14802,28 +14682,26 @@ { "body": null, "documentation": null, - "id": 2908, + "id": 3259, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyRunOutOfGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 2906, + "id": 3257, "nodeType": "ParameterList", "parameters": [], - "src": "681:2:25" + "src": "698:2:26" }, - "payable": false, "returnParameters": { - "id": 2907, + "id": 3258, "nodeType": "ParameterList", "parameters": [], - "src": "692:0:25" + "src": "709:0:26" }, - "scope": 3021, - "src": "653:40:25", + "scope": 3372, + "src": "670:40:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14831,35 +14709,34 @@ { "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": 2915, + "id": 3266, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenMethodReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 2913, + "id": 3264, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2910, + "id": 3261, "name": "method", "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1222:12:25", + "scope": 3266, + "src": "1239:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2909, + "id": 3260, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1222:5:25", + "src": "1239:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -14870,22 +14747,22 @@ }, { "constant": false, - "id": 2912, + "id": 3263, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1236:14:25", + "scope": 3266, + "src": "1262:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2911, + "id": 3262, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1236:5:25", + "src": "1262:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -14895,17 +14772,16 @@ "visibility": "internal" } ], - "src": "1221:30:25" + "src": "1238:48:26" }, - "payable": false, "returnParameters": { - "id": 2914, + "id": 3265, "nodeType": "ParameterList", "parameters": [], - "src": "1260:0:25" + "src": "1295:0:26" }, - "scope": 3021, - "src": "1195:66:25", + "scope": 3372, + "src": "1212:84:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14913,35 +14789,34 @@ { "body": null, "documentation": null, - "id": 2922, + "id": 3273, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenMethodReturnBool", "nodeType": "FunctionDefinition", "parameters": { - "id": 2920, + "id": 3271, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2917, + "id": 3268, "name": "method", "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1294:12:25", + "scope": 3273, + "src": "1329:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2916, + "id": 3267, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1294:5:25", + "src": "1329:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -14952,11 +14827,11 @@ }, { "constant": false, - "id": 2919, + "id": 3270, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1308:13:25", + "scope": 3273, + "src": "1352:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14964,10 +14839,10 @@ "typeString": "bool" }, "typeName": { - "id": 2918, + "id": 3269, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1308:4:25", + "src": "1352:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14977,17 +14852,16 @@ "visibility": "internal" } ], - "src": "1293:29:25" + "src": "1328:38:26" }, - "payable": false, "returnParameters": { - "id": 2921, + "id": 3272, "nodeType": "ParameterList", "parameters": [], - "src": "1331:0:25" + "src": "1375:0:26" }, - "scope": 3021, - "src": "1263:69:25", + "scope": 3372, + "src": "1298:78:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14995,4409 +14869,12 @@ { "body": null, "documentation": null, - "id": 2929, + "id": 3280, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenMethodReturnUint", "nodeType": "FunctionDefinition", - "parameters": { - "id": 2927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2924, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1365:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2923, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1365:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2926, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1379:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2925, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1379:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1364:29:25" - }, - "payable": false, - "returnParameters": { - "id": 2928, - "nodeType": "ParameterList", - "parameters": [], - "src": "1402:0:25" - }, - "scope": 3021, - "src": "1334:69:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2936, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2934, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2931, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1439:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2930, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1439:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2933, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1453:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2932, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1453:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1438:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2935, - "nodeType": "ParameterList", - "parameters": [], - "src": "1479:0:25" - }, - "scope": 3021, - "src": "1405:75:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2941, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2939, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2938, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2941, - "src": "1510:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2937, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1510:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1509:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2940, - "nodeType": "ParameterList", - "parameters": [], - "src": "1532:0:25" - }, - "scope": 3021, - "src": "1483:50:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2948, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2943, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1573:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2942, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1573:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2945, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1587:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2944, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1587:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1572:30:25" - }, - "payable": false, - "returnParameters": { - "id": 2947, - "nodeType": "ParameterList", - "parameters": [], - "src": "1611:0:25" - }, - "scope": 3021, - "src": "1535:77:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2953, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2950, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2953, - "src": "1646:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1646:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1645:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2952, - "nodeType": "ParameterList", - "parameters": [], - "src": "1668:0:25" - }, - "scope": 3021, - "src": "1614:55:25", - "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 calldata ABI encoded calldata (methodId and arguments)\n@param response ABI encoded response that will be returned if contract is invoked with calldata", - "id": 2960, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2958, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2955, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2089:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2954, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2089:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2957, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2105:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2956, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2105:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2088:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2959, - "nodeType": "ParameterList", - "parameters": [], - "src": "2129:0:25" - }, - "scope": 3021, - "src": "2060:70:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2967, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2962, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2165:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2961, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2165:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2964, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2963, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2164:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2966, - "nodeType": "ParameterList", - "parameters": [], - "src": "2204:0:25" - }, - "scope": 3021, - "src": "2132:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2974, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2969, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2240:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2968, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2240:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2971, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2256:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2970, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2256:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2239:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2973, - "nodeType": "ParameterList", - "parameters": [], - "src": "2279:0:25" - }, - "scope": 3021, - "src": "2207:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2981, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2979, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2976, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2318:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2975, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2318:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2978, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2334:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2334:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2317:34:25" - }, - "payable": false, - "returnParameters": { - "id": 2980, - "nodeType": "ParameterList", - "parameters": [], - "src": "2360:0:25" - }, - "scope": 3021, - "src": "2282:79:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2986, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2983, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2986, - "src": "2393:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2982, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2393:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2392:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2985, - "nodeType": "ParameterList", - "parameters": [], - "src": "2417:0:25" - }, - "scope": 3021, - "src": "2364:54:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2993, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2988, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2460:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2987, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2460:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2990, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2476:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2989, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2476:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2459:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [], - "src": "2500:0:25" - }, - "scope": 3021, - "src": "2420:81:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2998, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2996, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2995, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2998, - "src": "2537:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2994, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2537:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2536:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2997, - "nodeType": "ParameterList", - "parameters": [], - "src": "2561:0:25" - }, - "scope": 3021, - "src": "2503:59:25", - "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": 3003, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2999, - "nodeType": "ParameterList", - "parameters": [], - "src": "2691:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3001, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3003, - "src": "2712:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3000, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2712:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2711:6:25" - }, - "scope": 3021, - "src": "2667:51:25", - "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": 3010, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3006, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3005, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3005:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3004, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3005:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3004:14:25" - }, - "payable": false, - "returnParameters": { - "id": 3009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3008, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3037:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3007, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3037:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3036:6:25" - }, - "scope": 3021, - "src": "2971:72:25", - "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 calldata ABI encoded calldata (methodId and arguments)", - "id": 3017, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3263:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3011, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3263:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3262:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3015, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3297:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3014, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3297:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3296:6:25" - }, - "scope": 3021, - "src": "3227:76:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Resets all mocked methods and invocation counts.", - "id": 3020, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3018, - "nodeType": "ParameterList", - "parameters": [], - "src": "3389:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3019, - "nodeType": "ParameterList", - "parameters": [], - "src": "3400:0:25" - }, - "scope": 3021, - "src": "3375:26:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4001, - "src": "26:3377:25" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3022, - "name": "MockInterface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3021, - "src": "3478:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MockInterface_$3021", - "typeString": "contract MockInterface" - } - }, - "id": 3023, - "nodeType": "InheritanceSpecifier", - "src": "3478:13:25" - } - ], - "contractDependencies": [ - 3021 - ], - "contractKind": "contract", - "documentation": "Implementation of the MockInterface.", - "fullyImplemented": true, - "id": 4000, - "linearizedBaseContracts": [ - 4000, - 3021 - ], - "name": "MockContract", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "MockContract.MockType", - "id": 3027, - "members": [ - { - "id": 3024, - "name": "Return", - "nodeType": "EnumValue", - "src": "3511:6:25" - }, - { - "id": 3025, - "name": "Revert", - "nodeType": "EnumValue", - "src": "3519:6:25" - }, - { - "id": 3026, - "name": "OutOfGas", - "nodeType": "EnumValue", - "src": "3527:8:25" - } - ], - "name": "MockType", - "nodeType": "EnumDefinition", - "src": "3495:42:25" - }, - { - "constant": true, - "id": 3030, - "name": "MOCKS_LIST_START", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3541:50:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3028, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3541:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3584:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3033, - "name": "MOCKS_LIST_END", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3594:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes" - }, - "typeName": { - "id": 3031, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3594:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786666", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3633:6:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", - "typeString": "literal_string \"0xff\"" - }, - "value": "0xff" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3038, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3642:71:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3034, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3642:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3036, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "3698:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - ], - "id": 3035, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3688:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3688:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3041, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3716:51:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3039, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3716:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3760:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 3045, - "name": "calldataMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3832:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "typeName": { - "id": 3044, - "keyType": { - "id": 3042, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3840:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "3832:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "valueType": { - "id": 3043, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3851:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3049, - "name": "calldataMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3874:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "typeName": { - "id": 3048, - "keyType": { - "id": 3046, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3882:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3874:26:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3047, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "3891:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3053, - "name": "calldataExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3921:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "typeName": { - "id": 3052, - "keyType": { - "id": 3050, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3929:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3921:23:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "valueType": { - "id": 3051, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3938:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3057, - "name": "calldataRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3968:46:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "typeName": { - "id": 3056, - "keyType": { - "id": 3054, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3976:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3968:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "valueType": { - "id": 3055, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3985:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "calldataInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4017:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3060, - "keyType": { - "id": 3058, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4025:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4017:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3059, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4036:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3065, - "name": "methodIdMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4065:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "typeName": { - "id": 3064, - "keyType": { - "id": 3062, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4073:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4065:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "valueType": { - "id": 3063, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4083:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3069, - "name": "methodIdMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4107:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "typeName": { - "id": 3068, - "keyType": { - "id": 3066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4115:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4107:27:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3067, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4125:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3073, - "name": "methodIdExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4155:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "typeName": { - "id": 3072, - "keyType": { - "id": 3070, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4163:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4155:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "valueType": { - "id": 3071, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4173:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3077, - "name": "methodIdRevertMessages", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4203:48:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "typeName": { - "id": 3076, - "keyType": { - "id": 3074, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4211:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4203:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "valueType": { - "id": 3075, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4221:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3081, - "name": "methodIdInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4254:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3080, - "keyType": { - "id": 3078, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4262:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4254:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3079, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4273:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3083, - "name": "fallbackMockType", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4302:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "typeName": { - "contractScope": null, - "id": 3082, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4302:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3085, - "name": "fallbackExpectation", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4330:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes" - }, - "typeName": { - "id": 3084, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4330:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3087, - "name": "fallbackRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4358:28:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3086, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4358:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3089, - "name": "invocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4389:16:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3088, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4389:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3091, - "name": "resetCount", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4408:15:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3090, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4408:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3106, - "nodeType": "Block", - "src": "4448:114:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3094, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4452:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3096, - "indexExpression": { - "argumentTypes": null, - "id": 3095, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4466:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4452:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3097, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "4486:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "4452:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3099, - "nodeType": "ExpressionStatement", - "src": "4452:48:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3100, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4504:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3102, - "indexExpression": { - "argumentTypes": null, - "id": 3101, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4518:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4504:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3103, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4540:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4504:54:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3105, - "nodeType": "ExpressionStatement", - "src": "4504:54:25" - } - ] - }, - "documentation": null, - "id": 3107, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3092, - "nodeType": "ParameterList", - "parameters": [], - "src": "4438:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3093, - "nodeType": "ParameterList", - "parameters": [], - "src": "4448:0:25" - }, - "scope": 4000, - "src": "4427:135:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3140, - "nodeType": "Block", - "src": "4619:196:25", - "statements": [ - { - "assignments": [ - 3113 - ], - "declarations": [ - { - "constant": false, - "id": 3113, - "name": "callHash", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4623:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3112, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4623:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3117, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3115, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4652:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3114, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4642:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4642:15:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4623:34:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3118, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4665:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3120, - "indexExpression": { - "argumentTypes": null, - "id": 3119, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4679:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4665:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3121, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4665:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4699:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4665:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3139, - "nodeType": "IfStatement", - "src": "4661:151:25", - "trueBody": { - "id": 3138, - "nodeType": "Block", - "src": "4702:110:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3124, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4707:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3126, - "indexExpression": { - "argumentTypes": null, - "id": 3125, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4721:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4707:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3127, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4733:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3129, - "indexExpression": { - "argumentTypes": null, - "id": 3128, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4747:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4733:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "4707:57:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3131, - "nodeType": "ExpressionStatement", - "src": "4707:57:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3132, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4769:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3134, - "indexExpression": { - "argumentTypes": null, - "id": 3133, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4783:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4769:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3135, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4803:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "4769:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3137, - "nodeType": "ExpressionStatement", - "src": "4769:38:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3141, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackCalldataMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3109, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4592:17:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3108, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4592:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4591:19:25" - }, - "payable": false, - "returnParameters": { - "id": 3111, - "nodeType": "ParameterList", - "parameters": [], - "src": "4619:0:25" - }, - "scope": 4000, - "src": "4565:250:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3167, - "nodeType": "Block", - "src": "4870:161:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3146, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4878:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3148, - "indexExpression": { - "argumentTypes": null, - "id": 3147, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4892:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4878:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4905:3:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "4878:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3166, - "nodeType": "IfStatement", - "src": "4874:154:25", - "trueBody": { - "id": 3165, - "nodeType": "Block", - "src": "4910:118:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3151, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4915:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3153, - "indexExpression": { - "argumentTypes": null, - "id": 3152, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4929:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4915:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3154, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4941:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3156, - "indexExpression": { - "argumentTypes": null, - "id": 3155, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4955:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4941:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4915:59:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3158, - "nodeType": "ExpressionStatement", - "src": "4915:59:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3159, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4979:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3161, - "indexExpression": { - "argumentTypes": null, - "id": 3160, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4993:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4979:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3162, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "5015:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4979:44:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3164, - "nodeType": "ExpressionStatement", - "src": "4979:44:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3168, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackMethodIdMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3143, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3168, - "src": "4845:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3142, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4845:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4844:17:25" - }, - "payable": false, - "returnParameters": { - "id": 3145, - "nodeType": "ParameterList", - "parameters": [], - "src": "4870:0:25" - }, - "scope": 4000, - "src": "4818:213:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3182, - "nodeType": "Block", - "src": "5084:76:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3173, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5088:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3174, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5107:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5107:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5088:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3177, - "nodeType": "ExpressionStatement", - "src": "5088:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3178, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "5126:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3179, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3170, - "src": "5148:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "5126:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3181, - "nodeType": "ExpressionStatement", - "src": "5126:30:25" - } - ] - }, - "documentation": null, - "id": 3183, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3170, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3183, - "src": "5059:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3169, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5059:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5058:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [], - "src": "5084:0:25" - }, - "scope": 4000, - "src": "5034:126:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3192, - "nodeType": "Block", - "src": "5212:33:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3189, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "5232:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3188, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5216:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5216:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3191, - "nodeType": "ExpressionStatement", - "src": "5216:25:25" - } - ] - }, - "documentation": null, - "id": 3193, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3186, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3185, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3193, - "src": "5187:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3184, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5187:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5186:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3187, - "nodeType": "ParameterList", - "parameters": [], - "src": "5212:0:25" - }, - "scope": 4000, - "src": "5163:82:25", - "stateMutability": "nonpayable", - "superFunction": 2882, - "visibility": "external" - }, - { - "body": { - "id": 3211, - "nodeType": "Block", - "src": "5300:74:25", - "statements": [ - { - "assignments": [ - 3199 - ], - "declarations": [ - { - "constant": false, - "id": 3199, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5304:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3198, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5304:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3204, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3200, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3195, - "src": "5316:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5331:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5316:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5304:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3207, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3199, - "src": "5364:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3206, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5352:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5352:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3205, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5336:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5336:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3210, - "nodeType": "ExpressionStatement", - "src": "5336:34:25" - } - ] - }, - "documentation": null, - "id": 3212, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3195, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5276:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3194, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5276:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5275:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3197, - "nodeType": "ParameterList", - "parameters": [], - "src": "5300:0:25" - }, - "scope": 4000, - "src": "5248:126:25", - "stateMutability": "nonpayable", - "superFunction": 2887, - "visibility": "external" - }, - { - "body": { - "id": 3223, - "nodeType": "Block", - "src": "5429:47:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3219, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3214, - "src": "5461:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3218, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5449:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5449:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5433:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5433:38:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3222, - "nodeType": "ExpressionStatement", - "src": "5433:38:25" - } - ] - }, - "documentation": null, - "id": 3224, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3214, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3224, - "src": "5405:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3213, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5405:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5404:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3216, - "nodeType": "ParameterList", - "parameters": [], - "src": "5429:0:25" - }, - "scope": 4000, - "src": "5377:99:25", - "stateMutability": "nonpayable", - "superFunction": 2892, - "visibility": "external" - }, - { - "body": { - "id": 3235, - "nodeType": "Block", - "src": "5537:49:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3231, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3226, - "src": "5572:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3230, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "5557:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5557:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3229, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5541:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5541:41:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3234, - "nodeType": "ExpressionStatement", - "src": "5541:41:25" - } - ] - }, - "documentation": null, - "id": 3236, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3227, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3226, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "5510:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3225, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5510:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5509:18:25" - }, - "payable": false, - "returnParameters": { - "id": 3228, - "nodeType": "ParameterList", - "parameters": [], - "src": "5537:0:25" - }, - "scope": 4000, - "src": "5479:107:25", - "stateMutability": "nonpayable", - "superFunction": 2897, - "visibility": "external" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "5624:72:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3239, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5628:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3240, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5647:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5647:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5628:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3243, - "nodeType": "ExpressionStatement", - "src": "5628:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3244, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5666:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5690:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "5666:26:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3247, - "nodeType": "ExpressionStatement", - "src": "5666:26:25" - } - ] - }, - "documentation": null, - "id": 3249, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3237, - "nodeType": "ParameterList", - "parameters": [], - "src": "5612:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3238, - "nodeType": "ParameterList", - "parameters": [], - "src": "5624:0:25" - }, - "scope": 4000, - "src": "5589:107:25", - "stateMutability": "nonpayable", - "superFunction": 2900, - "visibility": "external" - }, - { - "body": { - "id": 3263, - "nodeType": "Block", - "src": "5759:77:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3254, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5763:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3255, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5782:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5782:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5763:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3258, - "nodeType": "ExpressionStatement", - "src": "5763:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3259, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5801:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3260, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "5825:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "5801:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3262, - "nodeType": "ExpressionStatement", - "src": "5801:31:25" - } - ] - }, - "documentation": null, - "id": 3264, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3264, - "src": "5734:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3250, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5734:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5733:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3253, - "nodeType": "ParameterList", - "parameters": [], - "src": "5759:0:25" - }, - "scope": 4000, - "src": "5699:137:25", - "stateMutability": "nonpayable", - "superFunction": 2905, - "visibility": "external" - }, - { - "body": { - "id": 3272, - "nodeType": "Block", - "src": "5879:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3267, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5883:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3268, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5902:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5902:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5883:36:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3271, - "nodeType": "ExpressionStatement", - "src": "5883:36:25" - } - ] - }, - "documentation": null, - "id": 3273, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3265, - "nodeType": "ParameterList", - "parameters": [], - "src": "5867:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3266, - "nodeType": "ParameterList", - "parameters": [], - "src": "5879:0:25" - }, - "scope": 4000, - "src": "5839:84:25", - "stateMutability": "nonpayable", - "superFunction": 2908, - "visibility": "external" - }, - { - "body": { - "id": 3297, - "nodeType": "Block", - "src": "5993:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3280, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "5997:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3282, - "indexExpression": { - "argumentTypes": null, - "id": 3281, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6015:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5997:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3283, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6023:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6023:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5997:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3286, - "nodeType": "ExpressionStatement", - "src": "5997:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3287, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "6042:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3289, - "indexExpression": { - "argumentTypes": null, - "id": 3288, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6063:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6042:26:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3290, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6071:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6042:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3292, - "nodeType": "ExpressionStatement", - "src": "6042:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3294, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6101:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3293, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6083:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6083:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3296, - "nodeType": "ExpressionStatement", - "src": "6083:23:25" - } - ] - }, - "documentation": null, - "id": 3298, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenCalldataReturn", - "nodeType": "FunctionDefinition", "parameters": { "id": 3278, "nodeType": "ParameterList", @@ -19405,21 +14882,21 @@ { "constant": false, "id": 3275, - "name": "call", + "name": "method", "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5956:10:25", + "scope": 3280, + "src": "1409:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 3274, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5956:5:25", + "src": "1409:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -19433,152 +14910,73 @@ "id": 3277, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5968:14:25", + "scope": 3280, + "src": "1432:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { "id": 3276, - "name": "bytes", + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5968:5:25", + "src": "1432:4:26", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "5955:28:25" + "src": "1408:38:26" }, - "payable": false, "returnParameters": { "id": 3279, "nodeType": "ParameterList", "parameters": [], - "src": "5993:0:25" + "src": "1455:0:26" }, - "scope": 4000, - "src": "5926:184:25", + "scope": 3372, + "src": "1378:78:26", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "private" + "visibility": "external" }, { - "body": { - "id": 3310, - "nodeType": "Block", - "src": "6180:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3306, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3300, - "src": "6205:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3307, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "6211:8:25", - "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": 3305, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3298, - "src": "6184:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6184:36:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3309, - "nodeType": "ExpressionStatement", - "src": "6184:36:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3311, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3287, + "implemented": false, + "kind": "function", "modifiers": [], - "name": "givenCalldataReturn", + "name": "givenMethodReturnAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 3303, + "id": 3285, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3300, - "name": "call", + "id": 3282, + "name": "method", "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6142:10:25", + "scope": 3287, + "src": "1492:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3299, + "id": 3281, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6142:5:25", + "src": "1492:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -19589,22 +14987,77 @@ }, { "constant": false, - "id": 3302, + "id": 3284, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6154:14:25", + "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": 3301, + "id": 3288, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6154:5:25", + "src": "1572:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -19614,240 +15067,240 @@ "visibility": "internal" } ], - "src": "6141:28:25" + "src": "1571:23:26" }, - "payable": false, "returnParameters": { - "id": 3304, + "id": 3291, "nodeType": "ParameterList", "parameters": [], - "src": "6180:0:25" + "src": "1603:0:26" }, - "scope": 4000, - "src": "6113:111:25", + "scope": 3372, + "src": "1545:59:26", "stateMutability": "nonpayable", - "superFunction": 2960, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3332, - "nodeType": "Block", - "src": "6296:83:25", - "statements": [ + "body": null, + "documentation": null, + "id": 3299, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "givenMethodRevertWithMessage", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3297, + "nodeType": "ParameterList", + "parameters": [ { - "assignments": [ - 3319 - ], - "declarations": [ - { - "constant": false, - "id": 3319, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6300:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3318, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6300:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3324, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3320, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3315, - "src": "6312:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6312:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6323:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, + "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_uint8", - "typeString": "uint8" + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6300:28:25" + "value": null, + "visibility": "internal" }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3326, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3313, - "src": "6351:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3328, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "6369:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3327, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6357:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6357:17:25", - "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": 3325, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6332:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6332:43:25", + "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_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "id": 3331, - "nodeType": "ExpressionStatement", - "src": "6332:43:25" + "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": 3333, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "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", @@ -19860,10 +15313,10 @@ "id": 3313, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6260:10:25", + "scope": 3318, + "src": "2273:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" @@ -19872,7 +15325,7 @@ "id": 3312, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6260:5:25", + "src": "2273:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -19886,8 +15339,8 @@ "id": 3315, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6272:13:25", + "scope": 3318, + "src": "2294:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19898,7 +15351,7 @@ "id": 3314, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6272:4:25", + "src": "2294:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19908,166 +15361,51 @@ "visibility": "internal" } ], - "src": "6259:27:25" + "src": "2272:36:26" }, - "payable": false, "returnParameters": { "id": 3317, "nodeType": "ParameterList", "parameters": [], - "src": "6296:0:25" + "src": "2317:0:26" }, - "scope": 4000, - "src": "6227:152:25", + "scope": 3372, + "src": "2240:78:26", "stateMutability": "nonpayable", - "superFunction": 2967, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3347, - "nodeType": "Block", - "src": "6451:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3341, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3335, - "src": "6474:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3343, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "6492:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3342, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6480:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6480:21:25", - "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": 3340, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6455:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6455:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3346, - "nodeType": "ExpressionStatement", - "src": "6455:47:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3348, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3325, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataReturnUint", "nodeType": "FunctionDefinition", "parameters": { - "id": 3338, + "id": 3323, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3335, + "id": 3320, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6415:10:25", + "scope": 3325, + "src": "2353:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3334, + "id": 3319, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6415:5:25", + "src": "2353:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -20078,11 +15416,11 @@ }, { "constant": false, - "id": 3337, + "id": 3322, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6427:13:25", + "scope": 3325, + "src": "2374:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20090,10 +15428,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3336, + "id": 3321, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6427:4:25", + "src": "2374:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20103,166 +15441,51 @@ "visibility": "internal" } ], - "src": "6414:27:25" + "src": "2352:36:26" }, - "payable": false, "returnParameters": { - "id": 3339, + "id": 3324, "nodeType": "ParameterList", "parameters": [], - "src": "6451:0:25" + "src": "2397:0:26" }, - "scope": 4000, - "src": "6382:124:25", + "scope": 3372, + "src": "2320:78:26", "stateMutability": "nonpayable", - "superFunction": 2974, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3362, - "nodeType": "Block", - "src": "6584:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3356, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "6607:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3358, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3352, - "src": "6628:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3357, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "6613:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:24:25", - "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": 3355, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6588:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6588:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3361, - "nodeType": "ExpressionStatement", - "src": "6588:50:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3363, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3332, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataReturnAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 3353, + "id": 3330, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3350, + "id": 3327, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6545:10:25", + "scope": 3332, + "src": "2436:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3349, + "id": 3326, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6545:5:25", + "src": "2436:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -20273,11 +15496,11 @@ }, { "constant": false, - "id": 3352, + "id": 3329, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6557:16:25", + "scope": 3332, + "src": "2457:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20285,10 +15508,11 @@ "typeString": "address" }, "typeName": { - "id": 3351, + "id": 3328, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6557:7:25", + "src": "2457:7:26", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20298,1512 +15522,51 @@ "visibility": "internal" } ], - "src": "6544:30:25" + "src": "2435:39:26" }, - "payable": false, "returnParameters": { - "id": 3354, + "id": 3331, "nodeType": "ParameterList", "parameters": [], - "src": "6584:0:25" + "src": "2483:0:26" }, - "scope": 4000, - "src": "6509:133:25", - "stateMutability": "nonpayable", - "superFunction": 2981, - "visibility": "external" - }, - { - "body": { - "id": 3393, - "nodeType": "Block", - "src": "6709:164:25", - "statements": [ - { - "assignments": [ - 3371 - ], - "declarations": [ - { - "constant": false, - "id": 3371, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6713:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3370, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "6713:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3375, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3373, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3365, - "src": "6743:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3372, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "6729:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6729:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6713:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3376, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "6752:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3378, - "indexExpression": { - "argumentTypes": null, - "id": 3377, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6770:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6752:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3379, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6780:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6780:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6752:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3382, - "nodeType": "ExpressionStatement", - "src": "6752:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3383, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "6799:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3385, - "indexExpression": { - "argumentTypes": null, - "id": 3384, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6820:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6799:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3386, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3367, - "src": "6830:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6799:39:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3388, - "nodeType": "ExpressionStatement", - "src": "6799:39:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3390, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6860:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3389, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "6842:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6842:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3392, - "nodeType": "ExpressionStatement", - "src": "6842:25:25" - } - ] - }, - "documentation": null, - "id": 3394, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3368, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3365, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6673:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3364, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6673:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3367, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6685:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3366, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6685:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6672:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3369, - "nodeType": "ParameterList", - "parameters": [], - "src": "6709:0:25" - }, - "scope": 4000, - "src": "6645:228:25", + "scope": 3372, + "src": "2400:84:26", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3406, - "nodeType": "Block", - "src": "6940:42:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3402, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "6963:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3403, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "6969:8:25", - "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": 3401, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6944:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6944:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3405, - "nodeType": "ExpressionStatement", - "src": "6944:34:25" - } - ] - }, - "documentation": null, - "id": 3407, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3396, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6903:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3395, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6903:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3398, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6915:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3397, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6915:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6902:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3400, - "nodeType": "ParameterList", - "parameters": [], - "src": "6940:0:25" - }, - "scope": 4000, - "src": "6876:106:25", - "stateMutability": "nonpayable", - "superFunction": 2915, "visibility": "external" }, { - "body": { - "id": 3428, - "nodeType": "Block", - "src": "7052:83:25", - "statements": [ - { - "assignments": [ - 3415 - ], - "declarations": [ - { - "constant": false, - "id": 3415, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7056:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3414, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7056:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3420, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3416, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3411, - "src": "7068:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7083:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "7068:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7079:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7056:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3422, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3409, - "src": "7107:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3424, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3415, - "src": "7125:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3423, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7113:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7113:17:25", - "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": 3421, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7088:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7088:43:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3427, - "nodeType": "ExpressionStatement", - "src": "7088:43:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3429, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3412, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3409, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7016:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3408, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7016:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3411, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7028:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3410, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7028:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7015:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3413, - "nodeType": "ParameterList", - "parameters": [], - "src": "7052:0:25" - }, - "scope": 4000, - "src": "6985:150:25", - "stateMutability": "nonpayable", - "superFunction": 2922, - "visibility": "external" - }, - { - "body": { - "id": 3443, - "nodeType": "Block", - "src": "7205:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3437, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3431, - "src": "7228:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3439, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3433, - "src": "7246:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3438, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7234:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7234:21:25", - "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": 3436, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7209:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7209:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3442, - "nodeType": "ExpressionStatement", - "src": "7209:47:25" - } - ] - }, - "documentation": null, - "id": 3444, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3434, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3431, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7169:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3430, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7169:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3433, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3432, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7168:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3435, - "nodeType": "ParameterList", - "parameters": [], - "src": "7205:0:25" - }, - "scope": 4000, - "src": "7138:122:25", - "stateMutability": "nonpayable", - "superFunction": 2929, - "visibility": "external" - }, - { - "body": { - "id": 3458, - "nodeType": "Block", - "src": "7336:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3452, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "7359:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3454, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3448, - "src": "7380:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3453, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "7365:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7365:24:25", - "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": 3451, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7340:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7340:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3457, - "nodeType": "ExpressionStatement", - "src": "7340:50:25" - } - ] - }, - "documentation": null, - "id": 3459, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7297:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3445, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7297:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3448, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7309:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3447, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7309:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7296:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3450, - "nodeType": "ParameterList", - "parameters": [], - "src": "7336:0:25" - }, - "scope": 4000, - "src": "7263:131:25", - "stateMutability": "nonpayable", - "superFunction": 2936, - "visibility": "external" - }, - { - "body": { - "id": 3481, - "nodeType": "Block", - "src": "7447:112:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3464, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7451:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3466, - "indexExpression": { - "argumentTypes": null, - "id": 3465, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7469:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7451:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3467, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7477:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7477:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7451:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3470, - "nodeType": "ExpressionStatement", - "src": "7451:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3471, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7496:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3473, - "indexExpression": { - "argumentTypes": null, - "id": 3472, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7518:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7496:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7526:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "7496:32:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3476, - "nodeType": "ExpressionStatement", - "src": "7496:32:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3478, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7550:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3477, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7532:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7532:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3480, - "nodeType": "ExpressionStatement", - "src": "7532:23:25" - } - ] - }, - "documentation": null, - "id": 3482, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3337, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataRevert", "nodeType": "FunctionDefinition", "parameters": { - "id": 3462, + "id": 3335, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3461, - "name": "call", + "id": 3334, + "name": "data", "nodeType": "VariableDeclaration", - "scope": 3482, - "src": "7426:10:25", + "scope": 3337, + "src": "2516:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3460, + "id": 3333, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7426:5:25", + "src": "2516:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -21813,565 +15576,51 @@ "visibility": "internal" } ], - "src": "7425:12:25" + "src": "2515:21:26" }, - "payable": false, "returnParameters": { - "id": 3463, + "id": 3336, "nodeType": "ParameterList", "parameters": [], - "src": "7447:0:25" + "src": "2545:0:26" }, - "scope": 4000, - "src": "7397:162:25", + "scope": 3372, + "src": "2487:59:26", "stateMutability": "nonpayable", - "superFunction": 2986, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3504, - "nodeType": "Block", - "src": "7610:121:25", - "statements": [ - { - "assignments": [ - 3488 - ], - "declarations": [ - { - "constant": false, - "id": 3488, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7614:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3487, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7614:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3490, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3484, - "src": "7644:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3489, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "7630:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7630:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7614:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3493, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "7653:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3495, - "indexExpression": { - "argumentTypes": null, - "id": 3494, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7671:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7653:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3496, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7681:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7681:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7653:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3499, - "nodeType": "ExpressionStatement", - "src": "7653:43:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3501, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7718:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3500, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "7700:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7700:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "7700:25:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3505, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3484, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7589:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3483, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7589:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7588:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3486, - "nodeType": "ParameterList", - "parameters": [], - "src": "7610:0:25" - }, - "scope": 4000, - "src": "7562:169:25", - "stateMutability": "nonpayable", - "superFunction": 2941, - "visibility": "external" - }, - { - "body": { - "id": 3529, - "nodeType": "Block", - "src": "7811:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3512, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7815:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3514, - "indexExpression": { - "argumentTypes": null, - "id": 3513, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7833:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7815:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3515, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7841:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7841:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7815:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3518, - "nodeType": "ExpressionStatement", - "src": "7815:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3519, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7860:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3521, - "indexExpression": { - "argumentTypes": null, - "id": 3520, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7882:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7860:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3522, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3509, - "src": "7890:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "7860:37:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3524, - "nodeType": "ExpressionStatement", - "src": "7860:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3526, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7919:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3525, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7901:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7901:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3528, - "nodeType": "ExpressionStatement", - "src": "7901:23:25" - } - ] - }, - "documentation": null, - "id": 3530, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3344, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataRevertWithMessage", "nodeType": "FunctionDefinition", "parameters": { - "id": 3510, + "id": 3342, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3507, - "name": "call", + "id": 3339, + "name": "data", "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7774:10:25", + "scope": 3344, + "src": "2588:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3506, + "id": 3338, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7774:5:25", + "src": "2588:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -22382,22 +15631,22 @@ }, { "constant": false, - "id": 3509, + "id": 3341, "name": "message", "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7786:14:25", + "scope": 3344, + "src": "2609:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string" }, "typeName": { - "id": 3508, + "id": 3340, "name": "string", "nodeType": "ElementaryTypeName", - "src": "7786:6:25", + "src": "2609:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -22407,71 +15656,2284 @@ "visibility": "internal" } ], - "src": "7773:28:25" + "src": "2587:46:26" }, - "payable": false, "returnParameters": { - "id": 3511, + "id": 3343, "nodeType": "ParameterList", "parameters": [], - "src": "7811:0:25" + "src": "2642:0:26" }, - "scope": 4000, - "src": "7734:194:25", + "scope": 3372, + "src": "2548:95:26", "stateMutability": "nonpayable", - "superFunction": 2993, + "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": 3560, + "id": 3457, "nodeType": "Block", - "src": "8006:165:25", + "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": [ - 3538 + 3464 ], "declarations": [ { "constant": false, - "id": 3538, - "name": "method", + "id": 3464, + "name": "callHash", "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "8010:13:25", + "scope": 3491, + "src": "4780:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 3537, - "name": "bytes4", + "id": 3463, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8010:6:25", + "src": "4780:7:26", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], - "id": 3542, + "id": 3468, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3540, + "id": 3466, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3532, - "src": "8040:4:25", + "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" @@ -22486,14 +17948,14 @@ } ], "id": 3539, - "name": "bytesToBytes4", + "name": "_givenAnyReturn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8026:13:25", + "referencedDeclaration": 3534, + "src": "5389:15:26", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" } }, "id": 3541, @@ -22504,60 +17966,644 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8026:19:25", + "src": "5389:25:26", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "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": "8010:35:25" + "src": "5477:28:26" }, { "expression": { "argumentTypes": null, - "id": 3548, + "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, - "baseExpression": { - "argumentTypes": null, - "id": 3543, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8049:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3545, - "indexExpression": { - "argumentTypes": null, - "id": 3544, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8067:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8049:25:25", + "id": 3590, + "name": "fallbackMockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3434, + "src": "5801:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -22567,18 +18613,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3546, + "id": 3591, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8077:8:25", + "referencedDeclaration": 3378, + "src": "5820:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3547, + "id": 3592, "isConstant": false, "isLValue": false, "isPure": true, @@ -22586,65 +18632,38 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8077:15:25", + "src": "5820:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "8049:43:25", + "src": "5801:34:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3549, + "id": 3594, "nodeType": "ExpressionStatement", - "src": "8049:43:25" + "src": "5801:34:26" }, { "expression": { "argumentTypes": null, - "id": 3554, + "id": 3597, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3550, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "8096:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3552, - "indexExpression": { - "argumentTypes": null, - "id": 3551, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8119:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8096:30:25", + "id": 3595, + "name": "fallbackRevertMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3438, + "src": "5839:21:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -22654,139 +18673,204 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3553, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "8129:7:25", + "hexValue": "", + "id": 3596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5863:2:26", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" }, - "src": "8096:40:25", + "src": "5839:26:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3555, + "id": 3598, "nodeType": "ExpressionStatement", - "src": "8096:40:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3557, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8158:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3556, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8140:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8140:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3559, - "nodeType": "ExpressionStatement", - "src": "8140:25:25" + "src": "5839:26:26" } ] }, "documentation": null, - "id": 3561, + "id": 3600, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "givenMethodRevertWithMessage", + "name": "givenAnyRevert", "nodeType": "FunctionDefinition", "parameters": { - "id": 3535, + "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": 3532, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7969:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3531, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7969:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3534, + "id": 3602, "name": "message", "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7981:14:25", + "scope": 3615, + "src": "5907:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string" }, "typeName": { - "id": 3533, + "id": 3601, "name": "string", "nodeType": "ElementaryTypeName", - "src": "7981:6:25", + "src": "5907:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -22796,72 +18880,44 @@ "visibility": "internal" } ], - "src": "7968:28:25" + "src": "5906:25:26" }, - "payable": false, "returnParameters": { - "id": 3536, + "id": 3604, "nodeType": "ParameterList", "parameters": [], - "src": "8006:0:25" + "src": "5941:0:26" }, - "scope": 4000, - "src": "7931:240:25", + "scope": 4351, + "src": "5872:146:26", "stateMutability": "nonpayable", - "superFunction": 2948, + "superFunction": 3256, "visibility": "external" }, { "body": { - "id": 3577, + "id": 3623, "nodeType": "Block", - "src": "8229:78:25", + "src": "6061:44:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3571, + "id": 3621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3566, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "8233:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3568, - "indexExpression": { - "argumentTypes": null, - "id": 3567, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8251:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8233:23:25", + "id": 3618, + "name": "fallbackMockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3434, + "src": "6065:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -22871,18 +18927,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3569, + "id": 3619, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8259:8:25", + "referencedDeclaration": 3378, + "src": "6084:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3570, + "id": 3620, "isConstant": false, "isLValue": false, "isPure": true, @@ -22890,21 +18946,216 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8259:17:25", + "src": "6084:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "8233:43:25", + "src": "6065:36:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3572, + "id": 3622, "nodeType": "ExpressionStatement", - "src": "8233:43:25" + "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": { @@ -22912,37 +19163,37 @@ "arguments": [ { "argumentTypes": null, - "id": 3574, + "id": 3645, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8298:4:25", + "referencedDeclaration": 3626, + "src": "6297:4:26", "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" + "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": 3573, + "id": 3644, "name": "trackCalldataMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "8280:17:25", + "referencedDeclaration": 3492, + "src": "6279:17:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 3575, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -22950,48 +19201,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8280:23:25", + "src": "6279:23:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3576, + "id": 3647, "nodeType": "ExpressionStatement", - "src": "8280:23:25" + "src": "6279:23:26" } ] }, "documentation": null, - "id": 3578, + "id": 3649, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "givenCalldataRunOutOfGas", + "name": "_givenCalldataReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 3564, + "id": 3629, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3563, + "id": 3626, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "8208:10:25", + "scope": 3649, + "src": "6138:17:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", + "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3562, + "id": 3625, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8208:5:25", + "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" @@ -23001,71 +19277,51 @@ "visibility": "internal" } ], - "src": "8207:12:25" + "src": "6137:42:26" }, - "payable": false, "returnParameters": { - "id": 3565, + "id": 3630, "nodeType": "ParameterList", "parameters": [], - "src": "8229:0:25" + "src": "6189:0:26" }, - "scope": 4000, - "src": "8174:133:25", + "scope": 4351, + "src": "6108:198:26", "stateMutability": "nonpayable", - "superFunction": 2998, - "visibility": "external" + "superFunction": null, + "visibility": "private" }, { "body": { - "id": 3600, + "id": 3661, "nodeType": "Block", - "src": "8363:122:25", + "src": "6394:44:26", "statements": [ { - "assignments": [ - 3584 - ], - "declarations": [ - { - "constant": false, - "id": 3584, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8367:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3583, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8367:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3588, - "initialValue": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3586, + "id": 3657, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3580, - "src": "8397:4:25", + "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" @@ -23074,23 +19330,27 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } ], - "id": 3585, - "name": "bytesToBytes4", + "id": 3656, + "name": "_givenCalldataReturn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8383:13:25", + "referencedDeclaration": 3649, + "src": "6398:20:26", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory,bytes memory)" } }, - "id": 3587, + "id": 3659, "isConstant": false, "isLValue": false, "isPure": false, @@ -23098,19 +19358,870 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8383:19:25", + "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": "8367:35:25" + "src": "6974:35:26" }, { "expression": { "argumentTypes": null, - "id": 3594, + "id": 3732, "isConstant": false, "isLValue": false, "isPure": false, @@ -23119,26 +20230,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3589, + "id": 3727, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8406:17:25", + "referencedDeclaration": 3420, + "src": "7013:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3591, + "id": 3729, "indexExpression": { "argumentTypes": null, - "id": 3590, + "id": 3728, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8424:6:25", + "referencedDeclaration": 3722, + "src": "7031:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -23149,9 +20260,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8406:25:25", + "src": "7013:25:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -23161,40 +20272,113 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3592, + "id": 3730, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8434:8:25", + "referencedDeclaration": 3378, + "src": "7041:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3593, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberName": "OutOfGas", + "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8434:17:25", + "src": "7041:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "8406:45:25", + "src": "7013:43:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3595, + "id": 3733, "nodeType": "ExpressionStatement", - "src": "8406:45:25" + "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": { @@ -23202,12 +20386,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3597, + "id": 3741, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8473:6:25", + "referencedDeclaration": 3722, + "src": "7121:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -23221,18 +20405,18 @@ "typeString": "bytes4" } ], - "id": 3596, + "id": 3740, "name": "trackMethodIdMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8455:17:25", + "referencedDeclaration": 3519, + "src": "7103:17:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, - "id": 3598, + "id": 3742, "isConstant": false, "isLValue": false, "isPure": false, @@ -23240,48 +20424,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8455:25:25", + "src": "7103:25:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3599, + "id": 3743, "nodeType": "ExpressionStatement", - "src": "8455:25:25" + "src": "7103:25:26" } ] }, "documentation": null, - "id": 3601, + "id": 3745, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "givenMethodRunOutOfGas", + "name": "_givenMethodReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 3581, + "id": 3719, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3580, + "id": 3716, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8342:10:25", + "scope": 3745, + "src": "6920:17:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", + "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3579, + "id": 3715, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8342:5:25", + "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" @@ -23291,74 +20500,628 @@ "visibility": "internal" } ], - "src": "8341:12:25" + "src": "6919:42:26" }, - "payable": false, "returnParameters": { - "id": 3582, + "id": 3720, "nodeType": "ParameterList", "parameters": [], - "src": "8363:0:25" + "src": "6970:0:26" }, - "scope": 4000, - "src": "8310:175:25", + "scope": 4351, + "src": "6892:242:26", "stateMutability": "nonpayable", - "superFunction": 2953, - "visibility": "external" + "superFunction": null, + "visibility": "private" }, { "body": { - "id": 3608, + "id": 3757, "nodeType": "Block", - "src": "8539:26:25", + "src": "7219:42:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3606, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "8550:11:25", + "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_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 3605, - "id": 3607, - "nodeType": "Return", - "src": "8543:18:25" + "id": 3756, + "nodeType": "ExpressionStatement", + "src": "7223:34:26" } ] }, "documentation": null, - "id": 3609, + "id": 3758, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "invocationCount", + "name": "givenMethodReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "8512:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3605, + "id": 3750, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3604, - "name": "", + "id": 3747, + "name": "call", "nodeType": "VariableDeclaration", - "scope": 3609, - "src": "8533:4:25", + "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": { @@ -23366,10 +21129,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3603, + "id": 3783, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8533:4:25", + "src": "7478:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23379,32 +21142,513 @@ "visibility": "internal" } ], - "src": "8532:6:25" + "src": "7456:36:26" }, - "scope": 4000, - "src": "8488:77:25", + "returnParameters": { + "id": 3786, + "nodeType": "ParameterList", + "parameters": [], + "src": "7502:0:26" + }, + "scope": 4351, + "src": "7426:131:26", "stateMutability": "nonpayable", - "superFunction": 3003, + "superFunction": 3280, "visibility": "external" }, { "body": { - "id": 3632, + "id": 3809, "nodeType": "Block", - "src": "8638:122:25", + "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": [ - 3617 + 3839 ], "declarations": [ { "constant": false, - "id": 3617, + "id": 3839, "name": "method", "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8642:13:25", + "scope": 3855, + "src": "7938:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23412,10 +21656,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3616, + "id": 3838, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "8642:6:25", + "src": "7938:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -23425,18 +21669,18 @@ "visibility": "internal" } ], - "id": 3621, + "id": 3843, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3619, + "id": 3841, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "8672:4:25", + "referencedDeclaration": 3835, + "src": "7968:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -23450,18 +21694,18 @@ "typeString": "bytes calldata" } ], - "id": 3618, + "id": 3840, "name": "bytesToBytes4", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8658:13:25", + "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": 3620, + "id": 3842, "isConstant": false, "isLValue": false, "isPure": false, @@ -23469,32 +21713,1579 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8658:19:25", + "src": "7954:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", - "src": "8642:35:25" + "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": 3622, + "id": 3973, "name": "methodIdInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "8688:19:25", + "referencedDeclaration": 3432, + "src": "9075:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3630, + "id": 3981, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -23503,12 +23294,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3626, + "id": 3977, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8735:10:25", + "referencedDeclaration": 3442, + "src": "9122:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23516,12 +23307,12 @@ }, { "argumentTypes": null, - "id": 3627, + "id": 3978, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3617, - "src": "8747:6:25", + "referencedDeclaration": 3968, + "src": "9134:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -23541,18 +23332,18 @@ ], "expression": { "argumentTypes": null, - "id": 3624, + "id": 3975, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8718:3:25", + "referencedDeclaration": 4353, + "src": "9105:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3625, + "id": 3976, "isConstant": false, "isLValue": false, "isPure": true, @@ -23560,13 +23351,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8718:16:25", + "src": "9105:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3628, + "id": 3979, "isConstant": false, "isLValue": false, "isPure": false, @@ -23574,7 +23365,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8718:36:25", + "src": "9105:36:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -23588,18 +23379,18 @@ "typeString": "bytes memory" } ], - "id": 3623, + "id": 3974, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8708:9:25", + "referencedDeclaration": 4360, + "src": "9095:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3629, + "id": 3980, "isConstant": false, "isLValue": false, "isPure": false, @@ -23607,7 +23398,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8708:47:25", + "src": "9095:47:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23618,49 +23409,48 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8688:68:25", + "src": "9075:68:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3615, - "id": 3631, + "functionReturnParameters": 3966, + "id": 3982, "nodeType": "Return", - "src": "8681:75:25" + "src": "9068:75:26" } ] }, "documentation": null, - "id": 3633, + "id": 3984, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "invocationCountForMethod", "nodeType": "FunctionDefinition", "parameters": { - "id": 3612, + "id": 3963, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3611, + "id": 3962, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8602:10:25", + "scope": 3984, + "src": "8980:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3610, + "id": 3961, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8602:5:25", + "src": "8980:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -23670,20 +23460,19 @@ "visibility": "internal" } ], - "src": "8601:12:25" + "src": "8979:21:26" }, - "payable": false, "returnParameters": { - "id": 3615, + "id": 3966, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3614, + "id": 3965, "name": "", "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8632:4:25", + "scope": 3984, + "src": "9019:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23691,10 +23480,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3613, + "id": 3964, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8632:4:25", + "src": "9019:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23704,37 +23493,37 @@ "visibility": "internal" } ], - "src": "8631:6:25" + "src": "9018:6:26" }, - "scope": 4000, - "src": "8568:192:25", + "scope": 4351, + "src": "8946:201:26", "stateMutability": "nonpayable", - "superFunction": 3010, + "superFunction": 3361, "visibility": "external" }, { "body": { - "id": 3650, + "id": 4001, "nodeType": "Block", - "src": "8835:81:25", + "src": "9231:81:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3640, + "id": 3991, "name": "calldataInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "8846:19:25", + "referencedDeclaration": 3412, + "src": "9242:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3648, + "id": 3999, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -23743,12 +23532,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3644, + "id": 3995, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8893:10:25", + "referencedDeclaration": 3442, + "src": "9289:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23756,12 +23545,12 @@ }, { "argumentTypes": null, - "id": 3645, + "id": 3996, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3635, - "src": "8905:4:25", + "referencedDeclaration": 3986, + "src": "9301:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -23781,18 +23570,18 @@ ], "expression": { "argumentTypes": null, - "id": 3642, + "id": 3993, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8876:3:25", + "referencedDeclaration": 4353, + "src": "9272:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3643, + "id": 3994, "isConstant": false, "isLValue": false, "isPure": true, @@ -23800,13 +23589,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8876:16:25", + "src": "9272:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3646, + "id": 3997, "isConstant": false, "isLValue": false, "isPure": false, @@ -23814,7 +23603,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8876:34:25", + "src": "9272:34:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -23828,18 +23617,18 @@ "typeString": "bytes memory" } ], - "id": 3641, + "id": 3992, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8866:9:25", + "referencedDeclaration": 4360, + "src": "9262:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3647, + "id": 3998, "isConstant": false, "isLValue": false, "isPure": false, @@ -23847,7 +23636,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8866:45:25", + "src": "9262:45:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23858,49 +23647,48 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8846:66:25", + "src": "9242:66:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3639, - "id": 3649, + "functionReturnParameters": 3990, + "id": 4000, "nodeType": "Return", - "src": "8839:73:25" + "src": "9235:73:26" } ] }, "documentation": null, - "id": 3651, + "id": 4002, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "invocationCountForCalldata", "nodeType": "FunctionDefinition", "parameters": { - "id": 3636, + "id": 3987, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3635, + "id": 3986, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8799:10:25", + "scope": 4002, + "src": "9186:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3634, + "id": 3985, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8799:5:25", + "src": "9186:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -23910,20 +23698,19 @@ "visibility": "internal" } ], - "src": "8798:12:25" + "src": "9185:21:26" }, - "payable": false, "returnParameters": { - "id": 3639, + "id": 3990, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3638, + "id": 3989, "name": "", "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8829:4:25", + "scope": 4002, + "src": "9225:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23931,10 +23718,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3637, + "id": 3988, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8829:4:25", + "src": "9225:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23944,32 +23731,32 @@ "visibility": "internal" } ], - "src": "8828:6:25" + "src": "9224:6:26" }, - "scope": 4000, - "src": "8763:153:25", + "scope": 4351, + "src": "9150:162:26", "stateMutability": "nonpayable", - "superFunction": 3017, + "superFunction": 3368, "visibility": "external" }, { "body": { - "id": 3783, + "id": 4134, "nodeType": "Block", - "src": "8945:1265:25", + "src": "9341:1265:26", "statements": [ { "assignments": [ - 3655 + 4006 ], "declarations": [ { "constant": false, - "id": 3655, + "id": 4006, "name": "nextMock", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "8984:21:25", + "scope": 4134, + "src": "9380:21:26", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -23977,10 +23764,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3654, + "id": 4005, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8984:5:25", + "src": "9380:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -23990,31 +23777,31 @@ "visibility": "internal" } ], - "id": 3659, + "id": 4010, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3656, + "id": 4007, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9008:13:25", + "referencedDeclaration": 3396, + "src": "9404:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3658, + "id": 4009, "indexExpression": { "argumentTypes": null, - "id": 3657, + "id": 4008, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9022:16:25", + "referencedDeclaration": 3381, + "src": "9418:16:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24025,27 +23812,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9008:31:25", + "src": "9404:31:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "8984:55:25" + "src": "9380:55:26" }, { "assignments": [ - 3661 + 4012 ], "declarations": [ { "constant": false, - "id": 3661, + "id": 4012, "name": "mockHash", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9043:16:25", + "scope": 4134, + "src": "9439:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24053,10 +23840,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3660, + "id": 4011, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9043:7:25", + "src": "9439:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24066,18 +23853,18 @@ "visibility": "internal" } ], - "id": 3665, + "id": 4016, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3663, + "id": 4014, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9072:8:25", + "referencedDeclaration": 4006, + "src": "9468:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -24091,18 +23878,18 @@ "typeString": "bytes memory" } ], - "id": 3662, + "id": 4013, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9062:9:25", + "referencedDeclaration": 4360, + "src": "9458:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3664, + "id": 4015, "isConstant": false, "isLValue": false, "isPure": false, @@ -24110,25 +23897,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9062:19:25", + "src": "9458:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "9043:38:25" + "src": "9439:38:26" }, { "body": { - "id": 3706, + "id": 4057, "nodeType": "Block", - "src": "9153:355:25", + "src": "9549:355:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3674, + "id": 4025, "isConstant": false, "isLValue": false, "isPure": false, @@ -24137,26 +23924,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3669, + "id": 4020, "name": "calldataMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "9184:17:25", + "referencedDeclaration": 3400, + "src": "9580:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, - "id": 3671, + "id": 4022, "indexExpression": { "argumentTypes": null, - "id": 3670, + "id": 4021, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9202:8:25", + "referencedDeclaration": 4006, + "src": "9598:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -24167,9 +23954,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9184:27:25", + "src": "9580:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -24179,18 +23966,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3672, + "id": 4023, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9214:8:25", + "referencedDeclaration": 3378, + "src": "9610:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3673, + "id": 4024, "isConstant": false, "isLValue": false, "isPure": true, @@ -24198,26 +23985,26 @@ "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9214:15:25", + "src": "9610:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "9184:45:25", + "src": "9580:45:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3675, + "id": 4026, "nodeType": "ExpressionStatement", - "src": "9184:45:25" + "src": "9580:45:26" }, { "expression": { "argumentTypes": null, - "id": 3680, + "id": 4031, "isConstant": false, "isLValue": false, "isPure": false, @@ -24226,26 +24013,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3676, + "id": 4027, "name": "calldataExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "9234:20:25", + "referencedDeclaration": 3404, + "src": "9630:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes memory => bytes storage ref)" } }, - "id": 3678, + "id": 4029, "indexExpression": { "argumentTypes": null, - "id": 3677, + "id": 4028, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9255:8:25", + "referencedDeclaration": 4006, + "src": "9651:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -24256,7 +24043,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9234:30:25", + "src": "9630:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -24267,14 +24054,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3679, + "id": 4030, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9267:5:25", + "src": "9663:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -24282,20 +24069,20 @@ }, "value": "" }, - "src": "9234:38:25", + "src": "9630:38:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3681, + "id": 4032, "nodeType": "ExpressionStatement", - "src": "9234:38:25" + "src": "9630:38:26" }, { "expression": { "argumentTypes": null, - "id": 3686, + "id": 4037, "isConstant": false, "isLValue": false, "isPure": false, @@ -24304,26 +24091,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3682, + "id": 4033, "name": "calldataRevertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "9277:21:25", + "referencedDeclaration": 3408, + "src": "9673:21:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, - "id": 3684, + "id": 4035, "indexExpression": { "argumentTypes": null, - "id": 3683, + "id": 4034, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9299:8:25", + "referencedDeclaration": 4006, + "src": "9695:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -24334,7 +24121,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9277:31:25", + "src": "9673:31:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -24345,14 +24132,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3685, + "id": 4036, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9311:2:25", + "src": "9707:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -24360,32 +24147,32 @@ }, "value": "" }, - "src": "9277:36:25", + "src": "9673:36:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3687, + "id": 4038, "nodeType": "ExpressionStatement", - "src": "9277:36:25" + "src": "9673:36:26" }, { "expression": { "argumentTypes": null, - "id": 3692, + "id": 4043, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3688, + "id": 4039, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9348:8:25", + "referencedDeclaration": 4006, + "src": "9744:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -24397,26 +24184,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3689, + "id": 4040, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9359:13:25", + "referencedDeclaration": 3396, + "src": "9755:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3691, + "id": 4042, "indexExpression": { "argumentTypes": null, - "id": 3690, + "id": 4041, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9373:8:25", + "referencedDeclaration": 4012, + "src": "9769:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24427,26 +24214,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9359:23:25", + "src": "9755:23:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "src": "9348:34:25", + "src": "9744:34:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3693, + "id": 4044, "nodeType": "ExpressionStatement", - "src": "9348:34:25" + "src": "9744:34:26" }, { "expression": { "argumentTypes": null, - "id": 3698, + "id": 4049, "isConstant": false, "isLValue": false, "isPure": false, @@ -24455,26 +24242,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3694, + "id": 4045, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9417:13:25", + "referencedDeclaration": 3396, + "src": "9813:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3696, + "id": 4047, "indexExpression": { "argumentTypes": null, - "id": 3695, + "id": 4046, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9431:8:25", + "referencedDeclaration": 4012, + "src": "9827:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24485,7 +24272,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9417:23:25", + "src": "9813:23:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -24496,14 +24283,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3697, + "id": 4048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9443:2:25", + "src": "9839:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -24511,32 +24298,32 @@ }, "value": "" }, - "src": "9417:28:25", + "src": "9813:28:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3699, + "id": 4050, "nodeType": "ExpressionStatement", - "src": "9417:28:25" + "src": "9813:28:26" }, { "expression": { "argumentTypes": null, - "id": 3704, + "id": 4055, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3700, + "id": 4051, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9473:8:25", + "referencedDeclaration": 4012, + "src": "9869:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24549,12 +24336,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3702, + "id": 4053, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9494:8:25", + "referencedDeclaration": 4006, + "src": "9890:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -24568,18 +24355,18 @@ "typeString": "bytes memory" } ], - "id": 3701, + "id": 4052, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9484:9:25", + "referencedDeclaration": 4360, + "src": "9880:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3703, + "id": 4054, "isConstant": false, "isLValue": false, "isPure": false, @@ -24587,21 +24374,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9484:19:25", + "src": "9880:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "9473:30:25", + "src": "9869:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 3705, + "id": 4056, "nodeType": "ExpressionStatement", - "src": "9473:30:25" + "src": "9869:30:26" } ] }, @@ -24611,19 +24398,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 3668, + "id": 4019, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3666, + "id": 4017, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9120:8:25", + "referencedDeclaration": 4012, + "src": "9516:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24633,31 +24420,31 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 3667, + "id": 4018, "name": "MOCKS_LIST_END_HASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "9132:19:25", + "referencedDeclaration": 3389, + "src": "9528:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "9120:31:25", + "src": "9516:31:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3707, + "id": 4058, "nodeType": "WhileStatement", - "src": "9114:394:25" + "src": "9510:394:26" }, { "expression": { "argumentTypes": null, - "id": 3712, + "id": 4063, "isConstant": false, "isLValue": false, "isPure": false, @@ -24666,26 +24453,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3708, + "id": 4059, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9527:13:25", + "referencedDeclaration": 3396, + "src": "9923:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3710, + "id": 4061, "indexExpression": { "argumentTypes": null, - "id": 3709, + "id": 4060, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9541:16:25", + "referencedDeclaration": 3381, + "src": "9937:16:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24696,7 +24483,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9527:31:25", + "src": "9923:31:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -24706,39 +24493,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3711, + "id": 4062, "name": "MOCKS_LIST_END", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "9561:14:25", + "referencedDeclaration": 3384, + "src": "9957:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } }, - "src": "9527:48:25", + "src": "9923:48:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3713, + "id": 4064, "nodeType": "ExpressionStatement", - "src": "9527:48:25" + "src": "9923:48:26" }, { "assignments": [ - 3715 + 4066 ], "declarations": [ { "constant": false, - "id": 3715, + "id": 4066, "name": "nextAnyMock", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9613:18:25", + "scope": 4134, + "src": "10009:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24746,10 +24533,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3714, + "id": 4065, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "9613:6:25", + "src": "10009:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -24759,31 +24546,31 @@ "visibility": "internal" } ], - "id": 3719, + "id": 4070, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3716, + "id": 4067, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9634:13:25", + "referencedDeclaration": 3416, + "src": "10030:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3718, + "id": 4069, "indexExpression": { "argumentTypes": null, - "id": 3717, + "id": 4068, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9648:18:25", + "referencedDeclaration": 3392, + "src": "10044:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -24794,33 +24581,33 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9634:33:25", + "src": "10030:33:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", - "src": "9613:54:25" + "src": "10009:54:26" }, { "body": { - "id": 3758, + "id": 4109, "nodeType": "Block", - "src": "9712:316:25", + "src": "10108:316:26", "statements": [ { "assignments": [ - 3724 + 4075 ], "declarations": [ { "constant": false, - "id": 3724, + "id": 4075, "name": "currentAnyMock", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9717:21:25", + "scope": 4109, + "src": "10113:21:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24828,10 +24615,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3723, + "id": 4074, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "9717:6:25", + "src": "10113:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -24841,27 +24628,27 @@ "visibility": "internal" } ], - "id": 3726, + "id": 4077, "initialValue": { "argumentTypes": null, - "id": 3725, + "id": 4076, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9741:11:25", + "referencedDeclaration": 4066, + "src": "10137:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", - "src": "9717:35:25" + "src": "10113:35:26" }, { "expression": { "argumentTypes": null, - "id": 3732, + "id": 4083, "isConstant": false, "isLValue": false, "isPure": false, @@ -24870,26 +24657,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3727, + "id": 4078, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "9757:17:25", + "referencedDeclaration": 3420, + "src": "10153:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3729, + "id": 4080, "indexExpression": { "argumentTypes": null, - "id": 3728, + "id": 4079, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9775:14:25", + "referencedDeclaration": 4075, + "src": "10171:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -24900,9 +24687,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9757:33:25", + "src": "10153:33:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -24912,18 +24699,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3730, + "id": 4081, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9793:8:25", + "referencedDeclaration": 3378, + "src": "10189:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3731, + "id": 4082, "isConstant": false, "isLValue": false, "isPure": true, @@ -24931,26 +24718,26 @@ "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9793:15:25", + "src": "10189:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "9757:51:25", + "src": "10153:51:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3733, + "id": 4084, "nodeType": "ExpressionStatement", - "src": "9757:51:25" + "src": "10153:51:26" }, { "expression": { "argumentTypes": null, - "id": 3738, + "id": 4089, "isConstant": false, "isLValue": false, "isPure": false, @@ -24959,26 +24746,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3734, + "id": 4085, "name": "methodIdExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "9813:20:25", + "referencedDeclaration": 3424, + "src": "10209:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes storage ref)" } }, - "id": 3736, + "id": 4087, "indexExpression": { "argumentTypes": null, - "id": 3735, + "id": 4086, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9834:14:25", + "referencedDeclaration": 4075, + "src": "10230:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -24989,7 +24776,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9813:36:25", + "src": "10209:36:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -25000,14 +24787,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3737, + "id": 4088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9852:5:25", + "src": "10248:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -25015,20 +24802,20 @@ }, "value": "" }, - "src": "9813:44:25", + "src": "10209:44:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3739, + "id": 4090, "nodeType": "ExpressionStatement", - "src": "9813:44:25" + "src": "10209:44:26" }, { "expression": { "argumentTypes": null, - "id": 3744, + "id": 4095, "isConstant": false, "isLValue": false, "isPure": false, @@ -25037,26 +24824,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3740, + "id": 4091, "name": "methodIdRevertMessages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "9862:22:25", + "referencedDeclaration": 3428, + "src": "10258:22:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string storage ref)" } }, - "id": 3742, + "id": 4093, "indexExpression": { "argumentTypes": null, - "id": 3741, + "id": 4092, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9885:14:25", + "referencedDeclaration": 4075, + "src": "10281:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25067,7 +24854,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9862:38:25", + "src": "10258:38:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -25078,14 +24865,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3743, + "id": 4094, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9903:2:25", + "src": "10299:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -25093,32 +24880,32 @@ }, "value": "" }, - "src": "9862:43:25", + "src": "10258:43:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3745, + "id": 4096, "nodeType": "ExpressionStatement", - "src": "9862:43:25" + "src": "10258:43:26" }, { "expression": { "argumentTypes": null, - "id": 3750, + "id": 4101, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3746, + "id": 4097, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9910:11:25", + "referencedDeclaration": 4066, + "src": "10306:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25130,26 +24917,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3747, + "id": 4098, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9924:13:25", + "referencedDeclaration": 3416, + "src": "10320:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3749, + "id": 4100, "indexExpression": { "argumentTypes": null, - "id": 3748, + "id": 4099, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9938:14:25", + "referencedDeclaration": 4075, + "src": "10334:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25160,26 +24947,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9924:29:25", + "src": "10320:29:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "9910:43:25", + "src": "10306:43:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3751, + "id": 4102, "nodeType": "ExpressionStatement", - "src": "9910:43:25" + "src": "10306:43:26" }, { "expression": { "argumentTypes": null, - "id": 3756, + "id": 4107, "isConstant": false, "isLValue": false, "isPure": false, @@ -25188,26 +24975,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3752, + "id": 4103, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9988:13:25", + "referencedDeclaration": 3416, + "src": "10384:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3754, + "id": 4105, "indexExpression": { "argumentTypes": null, - "id": 3753, + "id": 4104, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "10002:14:25", + "referencedDeclaration": 4075, + "src": "10398:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25218,7 +25005,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9988:29:25", + "src": "10384:29:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25229,14 +25016,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "307830", - "id": 3755, + "id": 4106, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10020:3:25", + "src": "10416:3:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -25244,15 +25031,15 @@ }, "value": "0x0" }, - "src": "9988:35:25", + "src": "10384:35:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3757, + "id": 4108, "nodeType": "ExpressionStatement", - "src": "9988:35:25" + "src": "10384:35:26" } ] }, @@ -25262,19 +25049,19 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 3722, + "id": 4073, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3720, + "id": 4071, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9677:11:25", + "referencedDeclaration": 4066, + "src": "10073:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25284,31 +25071,31 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 3721, + "id": 4072, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9692:18:25", + "referencedDeclaration": 3392, + "src": "10088:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "9677:33:25", + "src": "10073:33:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3759, + "id": 4110, "nodeType": "WhileStatement", - "src": "9671:357:25" + "src": "10067:357:26" }, { "expression": { "argumentTypes": null, - "id": 3764, + "id": 4115, "isConstant": false, "isLValue": false, "isPure": false, @@ -25317,26 +25104,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3760, + "id": 4111, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "10047:13:25", + "referencedDeclaration": 3416, + "src": "10443:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3762, + "id": 4113, "indexExpression": { "argumentTypes": null, - "id": 3761, + "id": 4112, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10061:18:25", + "referencedDeclaration": 3392, + "src": "10457:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25347,7 +25134,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "10047:33:25", + "src": "10443:33:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25357,43 +25144,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3763, + "id": 4114, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10083:18:25", + "referencedDeclaration": 3392, + "src": "10479:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "10047:54:25", + "src": "10443:54:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3765, + "id": 4116, "nodeType": "ExpressionStatement", - "src": "10047:54:25" + "src": "10443:54:26" }, { "expression": { "argumentTypes": null, - "id": 3768, + "id": 4119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3766, + "id": 4117, "name": "fallbackExpectation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "10106:19:25", + "referencedDeclaration": 3436, + "src": "10502:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -25404,14 +25191,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3767, + "id": 4118, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10128:2:25", + "src": "10524:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -25419,34 +25206,34 @@ }, "value": "" }, - "src": "10106:24:25", + "src": "10502:24:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3769, + "id": 4120, "nodeType": "ExpressionStatement", - "src": "10106:24:25" + "src": "10502:24:26" }, { "expression": { "argumentTypes": null, - "id": 3773, + "id": 4124, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3770, + "id": 4121, "name": "fallbackMockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "10134:16:25", + "referencedDeclaration": 3434, + "src": "10530:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -25456,18 +25243,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3771, + "id": 4122, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "10153:8:25", + "referencedDeclaration": 3378, + "src": "10549:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3772, + "id": 4123, "isConstant": false, "isLValue": false, "isPure": true, @@ -25475,38 +25262,38 @@ "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10153:15:25", + "src": "10549:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "10134:34:25", + "src": "10530:34:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3774, + "id": 4125, "nodeType": "ExpressionStatement", - "src": "10134:34:25" + "src": "10530:34:26" }, { "expression": { "argumentTypes": null, - "id": 3777, + "id": 4128, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3775, + "id": 4126, "name": "invocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "10172:11:25", + "referencedDeclaration": 3440, + "src": "10568:11:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25517,14 +25304,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 3776, + "id": 4127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10186:1:25", + "src": "10582:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -25532,32 +25319,32 @@ }, "value": "0" }, - "src": "10172:15:25", + "src": "10568:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3778, + "id": 4129, "nodeType": "ExpressionStatement", - "src": "10172:15:25" + "src": "10568:15:26" }, { "expression": { "argumentTypes": null, - "id": 3781, + "id": 4132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3779, + "id": 4130, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "10191:10:25", + "referencedDeclaration": 3442, + "src": "10587:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25568,14 +25355,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3780, + "id": 4131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10205:1:25", + "src": "10601:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -25583,67 +25370,67 @@ }, "value": "1" }, - "src": "10191:15:25", + "src": "10587:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3782, + "id": 4133, "nodeType": "ExpressionStatement", - "src": "10191:15:25" + "src": "10587:15:26" } ] }, "documentation": null, - "id": 3784, + "id": 4135, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "reset", "nodeType": "FunctionDefinition", "parameters": { - "id": 3652, + "id": 4003, "nodeType": "ParameterList", "parameters": [], - "src": "8933:2:25" + "src": "9329:2:26" }, - "payable": false, "returnParameters": { - "id": 3653, + "id": 4004, "nodeType": "ParameterList", "parameters": [], - "src": "8945:0:25" + "src": "9341:0:26" }, - "scope": 4000, - "src": "8919:1291:25", + "scope": 4351, + "src": "9315:1291:26", "stateMutability": "nonpayable", - "superFunction": 3020, + "superFunction": 3371, "visibility": "external" }, { "body": { - "id": 3794, + "id": 4145, "nodeType": "Block", - "src": "10242:157:25", + "src": "10638:157:26", "statements": [ { "body": { - "id": 3792, + "id": 4143, "nodeType": "Block", - "src": "10258:138:25", + "src": "10654:138:26", "statements": [ { - "assignments": [], + "assignments": [ + 4140 + ], "declarations": [ { "constant": false, - "id": 3789, + "id": 4140, "name": "s", "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "10263:6:25", + "scope": 4143, + "src": "10659:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25651,10 +25438,10 @@ "typeString": "bool" }, "typeName": { - "id": 3788, + "id": 4139, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "10263:4:25", + "src": "10659:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25664,41 +25451,41 @@ "visibility": "internal" } ], - "id": 3790, + "id": 4141, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "10263:6:25" + "src": "10659:6:26" }, { "externalReferences": [ { "s": { - "declaration": 3789, + "declaration": 4140, "isOffset": false, "isSlot": false, - "src": "10334:1:25", + "src": "10730:1:26", "valueSize": 1 } } ], - "id": 3791, + "id": 4142, "nodeType": "InlineAssembly", "operations": "{\n s := call(sub(gas(), 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n}", - "src": "10274:122:25" + "src": "10670:122:26" } ] }, "condition": { "argumentTypes": null, "hexValue": "74727565", - "id": 3787, + "id": 4138, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10252:4:25", + "src": "10648:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -25706,55 +25493,55 @@ }, "value": "true" }, - "id": 3793, + "id": 4144, "nodeType": "WhileStatement", - "src": "10246:150:25" + "src": "10642:150:26" } ] }, "documentation": null, - "id": 3795, + "id": 4146, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "useAllGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 3785, + "id": 4136, "nodeType": "ParameterList", "parameters": [], - "src": "10231:2:25" + "src": "10627:2:26" }, - "payable": false, "returnParameters": { - "id": 3786, + "id": 4137, "nodeType": "ParameterList", "parameters": [], - "src": "10242:0:25" + "src": "10638:0:26" }, - "scope": 4000, - "src": "10213:186:25", + "scope": 4351, + "src": "10609:186:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3834, + "id": 4185, "nodeType": "Block", - "src": "10464:122:25", + "src": "10867:122:26", "statements": [ { - "assignments": [], + "assignments": [ + 4154 + ], "declarations": [ { "constant": false, - "id": 3803, + "id": 4154, "name": "out", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10470:10:25", + "scope": 4185, + "src": "10873:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25762,10 +25549,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3802, + "id": 4153, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "10470:6:25", + "src": "10873:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25775,33 +25562,33 @@ "visibility": "internal" } ], - "id": 3804, + "id": 4155, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "10470:10:25" + "src": "10873:10:26" }, { "body": { - "id": 3830, + "id": 4181, "nodeType": "Block", - "src": "10515:52:25", + "src": "10918:52:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3828, + "id": 4179, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3815, + "id": 4166, "name": "out", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10523:3:25", + "referencedDeclaration": 4154, + "src": "10926:3:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25815,7 +25602,7 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 3827, + "id": 4178, "isConstant": false, "isLValue": false, "isPure": false, @@ -25829,7 +25616,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 3821, + "id": 4172, "isConstant": false, "isLValue": false, "isPure": false, @@ -25838,26 +25625,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3817, + "id": 4168, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "10537:1:25", + "referencedDeclaration": 4148, + "src": "10940:1:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3819, + "id": 4170, "indexExpression": { "argumentTypes": null, - "id": 3818, + "id": 4169, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10539:1:25", + "referencedDeclaration": 4157, + "src": "10942:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25868,7 +25655,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10537:4:25", + "src": "10940:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -25879,14 +25666,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30784646", - "id": 3820, + "id": 4171, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10544:4:25", + "src": "10947:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", @@ -25894,7 +25681,7 @@ }, "value": "0xFF" }, - "src": "10537:11:25", + "src": "10940:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -25908,20 +25695,20 @@ "typeString": "bytes1" } ], - "id": 3816, + "id": 4167, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10530:6:25", + "src": "10933:6:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes4_$", "typeString": "type(bytes4)" }, "typeName": "bytes4" }, - "id": 3822, + "id": 4173, "isConstant": false, "isLValue": false, "isPure": false, @@ -25929,7 +25716,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10530:19:25", + "src": "10933:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25946,19 +25733,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3825, + "id": 4176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3823, + "id": 4174, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10554:1:25", + "referencedDeclaration": 4157, + "src": "10957:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25969,14 +25756,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "38", - "id": 3824, + "id": 4175, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10558:1:25", + "src": "10961:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", @@ -25984,41 +25771,41 @@ }, "value": "8" }, - "src": "10554:5:25", + "src": "10957:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3826, + "id": 4177, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10553:7:25", + "src": "10956:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10530:30:25", + "src": "10933:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "10523:37:25", + "src": "10926:37:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3829, + "id": 4180, "nodeType": "ExpressionStatement", - "src": "10523:37:25" + "src": "10926:37:26" } ] }, @@ -26028,19 +25815,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3811, + "id": 4162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3809, + "id": 4160, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10503:1:25", + "referencedDeclaration": 4157, + "src": "10906:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26051,14 +25838,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "34", - "id": 3810, + "id": 4161, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10507:1:25", + "src": "10910:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -26066,25 +25853,25 @@ }, "value": "4" }, - "src": "10503:5:25", + "src": "10906:5:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3831, + "id": 4182, "initializationExpression": { "assignments": [ - 3806 + 4157 ], "declarations": [ { "constant": false, - "id": 3806, + "id": 4157, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10491:6:25", + "scope": 4182, + "src": "10894:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26092,10 +25879,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3805, + "id": 4156, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10491:4:25", + "src": "10894:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26105,18 +25892,18 @@ "visibility": "internal" } ], - "id": 3808, + "id": 4159, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 3807, + "id": 4158, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10500:1:25", + "src": "10903:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -26125,12 +25912,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "10491:10:25" + "src": "10894:10:26" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 3813, + "id": 4164, "isConstant": false, "isLValue": false, "isPure": false, @@ -26138,15 +25925,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "10510:3:25", + "src": "10913:3:26", "subExpression": { "argumentTypes": null, - "id": 3812, + "id": 4163, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10510:1:25", + "referencedDeclaration": 4157, + "src": "10913:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26157,64 +25944,63 @@ "typeString": "uint256" } }, - "id": 3814, + "id": 4165, "nodeType": "ExpressionStatement", - "src": "10510:3:25" + "src": "10913:3:26" }, "nodeType": "ForStatement", - "src": "10486:81:25" + "src": "10889:81:26" }, { "expression": { "argumentTypes": null, - "id": 3832, + "id": 4183, "name": "out", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10579:3:25", + "referencedDeclaration": 4154, + "src": "10982:3:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "functionReturnParameters": 3801, - "id": 3833, + "functionReturnParameters": 4152, + "id": 4184, "nodeType": "Return", - "src": "10572:10:25" + "src": "10975:10:26" } ] }, "documentation": null, - "id": 3835, + "id": 4186, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "bytesToBytes4", "nodeType": "FunctionDefinition", "parameters": { - "id": 3798, + "id": 4149, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3797, + "id": 4148, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10425:7:25", + "scope": 4186, + "src": "10821:14:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3796, + "id": 4147, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10425:5:25", + "src": "10821:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -26224,20 +26010,19 @@ "visibility": "internal" } ], - "src": "10424:9:25" + "src": "10820:16:26" }, - "payable": false, "returnParameters": { - "id": 3801, + "id": 4152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3800, + "id": 4151, "name": "", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10456:6:25", + "scope": 4186, + "src": "10859:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26245,10 +26030,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3799, + "id": 4150, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "10456:6:25", + "src": "10859:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -26258,67 +26043,66 @@ "visibility": "internal" } ], - "src": "10455:8:25" + "src": "10858:8:26" }, - "scope": 4000, - "src": "10402:184:25", + "scope": 4351, + "src": "10798:191:26", "stateMutability": "pure", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3843, + "id": 4194, "nodeType": "Block", - "src": "10654:189:25", + "src": "11064:189:26", "statements": [ { "externalReferences": [ { "b": { - "declaration": 3840, + "declaration": 4191, "isOffset": false, "isSlot": false, - "src": "10827:1:25", + "src": "11237:1:26", "valueSize": 1 } }, { "a": { - "declaration": 3837, + "declaration": 4188, "isOffset": false, "isSlot": false, - "src": "10780:1:25", + "src": "11190:1:26", "valueSize": 1 } } ], - "id": 3842, + "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": "10661:182:25" + "src": "11071:182:26" } ] }, "documentation": null, - "id": 3844, + "id": 4195, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "addressToBytes", "nodeType": "FunctionDefinition", "parameters": { - "id": 3838, + "id": 4189, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3837, + "id": 4188, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10613:9:25", + "scope": 4195, + "src": "11016:9:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26326,10 +26110,11 @@ "typeString": "address" }, "typeName": { - "id": 3836, + "id": 4187, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10613:7:25", + "src": "11016:7:26", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26339,31 +26124,30 @@ "visibility": "internal" } ], - "src": "10612:11:25" + "src": "11015:11:26" }, - "payable": false, "returnParameters": { - "id": 3841, + "id": 4192, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3840, + "id": 4191, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10646:7:25", + "scope": 4195, + "src": "11049:14:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3839, + "id": 4190, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10646:5:25", + "src": "11049:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -26373,36 +26157,36 @@ "visibility": "internal" } ], - "src": "10645:9:25" + "src": "11048:16:26" }, - "scope": 4000, - "src": "10589:254:25", + "scope": 4351, + "src": "10992:261:26", "stateMutability": "pure", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3859, + "id": 4210, "nodeType": "Block", - "src": "10909:68:25", + "src": "11326:68:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3856, + "id": 4207, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3851, + "id": 4202, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3849, - "src": "10916:1:25", + "referencedDeclaration": 4200, + "src": "11333:1:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -26416,14 +26200,14 @@ { "argumentTypes": null, "hexValue": "3332", - "id": 3854, + "id": 4205, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10930:2:25", + "src": "11347:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -26439,29 +26223,29 @@ "typeString": "int_const 32" } ], - "id": 3853, + "id": 4204, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "10920:9:25", + "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": 3852, + "id": 4203, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10924:5:25", + "src": "11341:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, - "id": 3855, + "id": 4206, "isConstant": false, "isLValue": false, "isPure": true, @@ -26469,69 +26253,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10920:13:25", + "src": "11337:13:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } }, - "src": "10916:17:25", + "src": "11333:17:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3857, + "id": 4208, "nodeType": "ExpressionStatement", - "src": "10916:17:25" + "src": "11333:17:26" }, { "externalReferences": [ { "x": { - "declaration": 3846, + "declaration": 4197, "isOffset": false, "isSlot": false, - "src": "10970:1:25", + "src": "11387:1:26", "valueSize": 1 } }, { "b": { - "declaration": 3849, + "declaration": 4200, "isOffset": false, "isSlot": false, - "src": "10962:1:25", + "src": "11379:1:26", "valueSize": 1 } } ], - "id": 3858, + "id": 4209, "nodeType": "InlineAssembly", "operations": "{\n mstore(add(b, 32), x)\n}", - "src": "10940:37:25" + "src": "11357:37:26" } ] }, "documentation": null, - "id": 3860, + "id": 4211, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "uintToBytes", "nodeType": "FunctionDefinition", "parameters": { - "id": 3847, + "id": 4198, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3846, + "id": 4197, "name": "x", "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10867:9:25", + "scope": 4211, + "src": "11277:9:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26539,10 +26322,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3845, + "id": 4196, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10867:7:25", + "src": "11277:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26552,31 +26335,30 @@ "visibility": "internal" } ], - "src": "10866:11:25" + "src": "11276:11:26" }, - "payable": false, "returnParameters": { - "id": 3850, + "id": 4201, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3849, + "id": 4200, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10900:7:25", + "scope": 4211, + "src": "11310:14:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3848, + "id": 4199, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10900:5:25", + "src": "11310:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -26586,30 +26368,32 @@ "visibility": "internal" } ], - "src": "10899:9:25" + "src": "11309:16:26" }, - "scope": 4000, - "src": "10846:131:25", + "scope": 4351, + "src": "11256:138:26", "stateMutability": "pure", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3998, + "id": 4349, "nodeType": "Block", - "src": "11008:1178:25", + "src": "11425:1178:26", "statements": [ { - "assignments": [], + "assignments": [ + 4215 + ], "declarations": [ { "constant": false, - "id": 3864, + "id": 4215, "name": "methodId", "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11012:15:25", + "scope": 4349, + "src": "11429:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26617,10 +26401,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3863, + "id": 4214, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "11012:6:25", + "src": "11429:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -26630,36 +26414,36 @@ "visibility": "internal" } ], - "id": 3865, + "id": 4216, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "11012:15:25" + "src": "11429:15:26" }, { "externalReferences": [ { "methodId": { - "declaration": 3864, + "declaration": 4215, "isOffset": false, "isSlot": false, - "src": "11045:8:25", + "src": "11462:8:26", "valueSize": 1 } } ], - "id": 3866, + "id": 4217, "nodeType": "InlineAssembly", "operations": "{\n methodId := calldataload(0)\n}", - "src": "11031:94:25" + "src": "11448:94:26" }, { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3873, + "id": 4224, "isConstant": false, "isLValue": false, "isPure": false, @@ -26668,34 +26452,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3867, + "id": 4218, "name": "calldataMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11127:17:25", + "referencedDeclaration": 3400, + "src": "11544:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, - "id": 3870, + "id": 4221, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3868, + "id": 4219, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11145:3:25", + "referencedDeclaration": 4366, + "src": "11562:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3869, + "id": 4220, "isConstant": false, "isLValue": false, "isPure": false, @@ -26703,7 +26487,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11145:8:25", + "src": "11562:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -26714,9 +26498,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11127:27:25", + "src": "11544:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -26726,18 +26510,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3871, + "id": 4222, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11158:8:25", + "referencedDeclaration": 3378, + "src": "11575:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3872, + "id": 4223, "isConstant": false, "isLValue": false, "isPure": true, @@ -26745,26 +26529,26 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11158:15:25", + "src": "11575:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11127:46:25", + "src": "11544:46:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3882, + "id": 4233, "nodeType": "IfStatement", - "src": "11123:101:25", + "src": "11540:101:26", "trueBody": { - "id": 3881, + "id": 4232, "nodeType": "Block", - "src": "11175:49:25", + "src": "11592:49:26", "statements": [ { "expression": { @@ -26774,34 +26558,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3875, + "id": 4226, "name": "calldataRevertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "11187:21:25", + "referencedDeclaration": 3408, + "src": "11604:21:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, - "id": 3878, + "id": 4229, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3876, + "id": 4227, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11209:3:25", + "referencedDeclaration": 4366, + "src": "11626:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3877, + "id": 4228, "isConstant": false, "isLValue": false, "isPure": false, @@ -26809,7 +26593,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11209:8:25", + "src": "11626:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -26820,7 +26604,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11187:31:25", + "src": "11604:31:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -26834,21 +26618,21 @@ "typeString": "string storage ref" } ], - "id": 3874, + "id": 4225, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4021, - "src": "11180:6:25", + "referencedDeclaration": 4372, + "src": "11597:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 3879, + "id": 4230, "isConstant": false, "isLValue": false, "isPure": false, @@ -26856,15 +26640,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11180:39:25", + "src": "11597:39:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3880, + "id": 4231, "nodeType": "ExpressionStatement", - "src": "11180:39:25" + "src": "11597:39:26" } ] } @@ -26873,10 +26657,10 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3889, + "id": 4240, "isConstant": false, "isLValue": false, "isPure": false, @@ -26885,34 +26669,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3883, + "id": 4234, "name": "calldataMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11231:17:25", + "referencedDeclaration": 3400, + "src": "11648:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, - "id": 3886, + "id": 4237, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3884, + "id": 4235, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11249:3:25", + "referencedDeclaration": 4366, + "src": "11666:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3885, + "id": 4236, "isConstant": false, "isLValue": false, "isPure": false, @@ -26920,7 +26704,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11249:8:25", + "src": "11666:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -26931,9 +26715,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11231:27:25", + "src": "11648:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -26943,18 +26727,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3887, + "id": 4238, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11262:8:25", + "referencedDeclaration": 3378, + "src": "11679:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3888, + "id": 4239, "isConstant": false, "isLValue": false, "isPure": true, @@ -26962,26 +26746,26 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11262:17:25", + "src": "11679:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11231:48:25", + "src": "11648:48:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3894, + "id": 4245, "nodeType": "IfStatement", - "src": "11227:75:25", + "src": "11644:75:26", "trueBody": { - "id": 3893, + "id": 4244, "nodeType": "Block", - "src": "11281:21:25", + "src": "11698:21:26", "statements": [ { "expression": { @@ -26989,18 +26773,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3890, + "id": 4241, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11286:9:25", + "referencedDeclaration": 4146, + "src": "11703:9:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3891, + "id": 4242, "isConstant": false, "isLValue": false, "isPure": false, @@ -27008,31 +26792,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11286:11:25", + "src": "11703:11:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3892, + "id": 4243, "nodeType": "ExpressionStatement", - "src": "11286:11:25" + "src": "11703:11:26" } ] } }, { "assignments": [ - 3896 + 4247 ], "declarations": [ { "constant": false, - "id": 3896, + "id": 4247, "name": "result", "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11305:19:25", + "scope": 4349, + "src": "11722:19:26", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -27040,10 +26824,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3895, + "id": 4246, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11305:5:25", + "src": "11722:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -27053,39 +26837,39 @@ "visibility": "internal" } ], - "id": 3901, + "id": 4252, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3897, + "id": 4248, "name": "calldataExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "11327:20:25", + "referencedDeclaration": 3404, + "src": "11744:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes memory => bytes storage ref)" } }, - "id": 3900, + "id": 4251, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3898, + "id": 4249, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11348:3:25", + "referencedDeclaration": 4366, + "src": "11765:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3899, + "id": 4250, "isConstant": false, "isLValue": false, "isPure": false, @@ -27093,7 +26877,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11348:8:25", + "src": "11765:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -27104,14 +26888,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11327:30:25", + "src": "11744:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "11305:52:25" + "src": "11722:52:26" }, { "condition": { @@ -27120,7 +26904,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3905, + "id": 4256, "isConstant": false, "isLValue": false, "isPure": false, @@ -27129,18 +26913,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3902, + "id": 4253, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11402:6:25", + "referencedDeclaration": 4247, + "src": "11819:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3903, + "id": 4254, "isConstant": false, "isLValue": false, "isPure": false, @@ -27148,7 +26932,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11402:13:25", + "src": "11819:13:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27159,14 +26943,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3904, + "id": 4255, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11419:1:25", + "src": "11836:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -27174,29 +26958,29 @@ }, "value": "0" }, - "src": "11402:18:25", + "src": "11819:18:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3938, + "id": 4289, "nodeType": "IfStatement", - "src": "11398:262:25", + "src": "11815:262:26", "trueBody": { - "id": 3937, + "id": 4288, "nodeType": "Block", - "src": "11422:238:25", + "src": "11839:238:26", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3911, + "id": 4262, "isConstant": false, "isLValue": false, "isPure": false, @@ -27205,26 +26989,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3906, + "id": 4257, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11431:17:25", + "referencedDeclaration": 3420, + "src": "11848:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3908, + "id": 4259, "indexExpression": { "argumentTypes": null, - "id": 3907, + "id": 4258, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11449:8:25", + "referencedDeclaration": 4215, + "src": "11866:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -27235,9 +27019,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11431:27:25", + "src": "11848:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -27247,18 +27031,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3909, + "id": 4260, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11462:8:25", + "referencedDeclaration": 3378, + "src": "11879:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3910, + "id": 4261, "isConstant": false, "isLValue": false, "isPure": true, @@ -27266,26 +27050,26 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11462:15:25", + "src": "11879:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11431:46:25", + "src": "11848:46:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3919, + "id": 4270, "nodeType": "IfStatement", - "src": "11427:104:25", + "src": "11844:104:26", "trueBody": { - "id": 3918, + "id": 4269, "nodeType": "Block", - "src": "11479:52:25", + "src": "11896:52:26", "statements": [ { "expression": { @@ -27295,26 +27079,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3913, + "id": 4264, "name": "methodIdRevertMessages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "11492:22:25", + "referencedDeclaration": 3428, + "src": "11909:22:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string storage ref)" } }, - "id": 3915, + "id": 4266, "indexExpression": { "argumentTypes": null, - "id": 3914, + "id": 4265, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11515:8:25", + "referencedDeclaration": 4215, + "src": "11932:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -27325,7 +27109,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11492:32:25", + "src": "11909:32:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -27339,21 +27123,21 @@ "typeString": "string storage ref" } ], - "id": 3912, + "id": 4263, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4021, - "src": "11485:6:25", + "referencedDeclaration": 4372, + "src": "11902:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 3916, + "id": 4267, "isConstant": false, "isLValue": false, "isPure": false, @@ -27361,15 +27145,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11485:40:25", + "src": "11902:40:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3917, + "id": 4268, "nodeType": "ExpressionStatement", - "src": "11485:40:25" + "src": "11902:40:26" } ] } @@ -27378,10 +27162,10 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3925, + "id": 4276, "isConstant": false, "isLValue": false, "isPure": false, @@ -27390,26 +27174,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3920, + "id": 4271, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11539:17:25", + "referencedDeclaration": 3420, + "src": "11956:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3922, + "id": 4273, "indexExpression": { "argumentTypes": null, - "id": 3921, + "id": 4272, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11557:8:25", + "referencedDeclaration": 4215, + "src": "11974:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -27420,9 +27204,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11539:27:25", + "src": "11956:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -27432,18 +27216,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3923, + "id": 4274, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11570:8:25", + "referencedDeclaration": 3378, + "src": "11987:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3924, + "id": 4275, "isConstant": false, "isLValue": false, "isPure": true, @@ -27451,26 +27235,26 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11570:17:25", + "src": "11987:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11539:48:25", + "src": "11956:48:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3930, + "id": 4281, "nodeType": "IfStatement", - "src": "11535:77:25", + "src": "11952:77:26", "trueBody": { - "id": 3929, + "id": 4280, "nodeType": "Block", - "src": "11589:23:25", + "src": "12006:23:26", "statements": [ { "expression": { @@ -27478,18 +27262,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3926, + "id": 4277, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11595:9:25", + "referencedDeclaration": 4146, + "src": "12012:9:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3927, + "id": 4278, "isConstant": false, "isLValue": false, "isPure": false, @@ -27497,15 +27281,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11595:11:25", + "src": "12012:11:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3928, + "id": 4279, "nodeType": "ExpressionStatement", - "src": "11595:11:25" + "src": "12012:11:26" } ] } @@ -27513,19 +27297,19 @@ { "expression": { "argumentTypes": null, - "id": 3935, + "id": 4286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3931, + "id": 4282, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11616:6:25", + "referencedDeclaration": 4247, + "src": "12033:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -27537,26 +27321,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3932, + "id": 4283, "name": "methodIdExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "11625:20:25", + "referencedDeclaration": 3424, + "src": "12042:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes storage ref)" } }, - "id": 3934, + "id": 4285, "indexExpression": { "argumentTypes": null, - "id": 3933, + "id": 4284, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11646:8:25", + "referencedDeclaration": 4215, + "src": "12063:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -27567,21 +27351,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11625:30:25", + "src": "12042:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "src": "11616:39:25", + "src": "12033:39:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3936, + "id": 4287, "nodeType": "ExpressionStatement", - "src": "11616:39:25" + "src": "12033:39:26" } ] } @@ -27593,7 +27377,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3942, + "id": 4293, "isConstant": false, "isLValue": false, "isPure": false, @@ -27602,18 +27386,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3939, + "id": 4290, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11705:6:25", + "referencedDeclaration": 4247, + "src": "12122:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3940, + "id": 4291, "isConstant": false, "isLValue": false, "isPure": false, @@ -27621,7 +27405,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11705:13:25", + "src": "12122:13:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27632,14 +27416,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3941, + "id": 4292, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11722:1:25", + "src": "12139:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -27647,43 +27431,43 @@ }, "value": "0" }, - "src": "11705:18:25", + "src": "12122:18:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3967, + "id": 4318, "nodeType": "IfStatement", - "src": "11701:218:25", + "src": "12118:218:26", "trueBody": { - "id": 3966, + "id": 4317, "nodeType": "Block", - "src": "11725:194:25", + "src": "12142:194:26", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3946, + "id": 4297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3943, + "id": 4294, "name": "fallbackMockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11734:16:25", + "referencedDeclaration": 3434, + "src": "12151:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -27693,18 +27477,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3944, + "id": 4295, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11754:8:25", + "referencedDeclaration": 3378, + "src": "12171:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3945, + "id": 4296, "isConstant": false, "isLValue": false, "isPure": true, @@ -27712,26 +27496,26 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11754:15:25", + "src": "12171:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11734:35:25", + "src": "12151:35:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3952, + "id": 4303, "nodeType": "IfStatement", - "src": "11730:82:25", + "src": "12147:82:26", "trueBody": { - "id": 3951, + "id": 4302, "nodeType": "Block", - "src": "11771:41:25", + "src": "12188:41:26", "statements": [ { "expression": { @@ -27739,12 +27523,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3948, + "id": 4299, "name": "fallbackRevertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "11784:21:25", + "referencedDeclaration": 3438, + "src": "12201:21:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -27758,21 +27542,21 @@ "typeString": "string storage ref" } ], - "id": 3947, + "id": 4298, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4021, - "src": "11777:6:25", + "referencedDeclaration": 4372, + "src": "12194:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 3949, + "id": 4300, "isConstant": false, "isLValue": false, "isPure": false, @@ -27780,15 +27564,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11777:29:25", + "src": "12194:29:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3950, + "id": 4301, "nodeType": "ExpressionStatement", - "src": "11777:29:25" + "src": "12194:29:26" } ] } @@ -27797,24 +27581,24 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3956, + "id": 4307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3953, + "id": 4304, "name": "fallbackMockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11820:16:25", + "referencedDeclaration": 3434, + "src": "12237:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -27824,18 +27608,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3954, + "id": 4305, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11840:8:25", + "referencedDeclaration": 3378, + "src": "12257:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3955, + "id": 4306, "isConstant": false, "isLValue": false, "isPure": true, @@ -27843,26 +27627,26 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11840:17:25", + "src": "12257:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11820:37:25", + "src": "12237:37:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3961, + "id": 4312, "nodeType": "IfStatement", - "src": "11816:66:25", + "src": "12233:66:26", "trueBody": { - "id": 3960, + "id": 4311, "nodeType": "Block", - "src": "11859:23:25", + "src": "12276:23:26", "statements": [ { "expression": { @@ -27870,18 +27654,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3957, + "id": 4308, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11865:9:25", + "referencedDeclaration": 4146, + "src": "12282:9:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3958, + "id": 4309, "isConstant": false, "isLValue": false, "isPure": false, @@ -27889,15 +27673,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11865:11:25", + "src": "12282:11:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3959, + "id": 4310, "nodeType": "ExpressionStatement", - "src": "11865:11:25" + "src": "12282:11:26" } ] } @@ -27905,19 +27689,19 @@ { "expression": { "argumentTypes": null, - "id": 3964, + "id": 4315, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3962, + "id": 4313, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11886:6:25", + "referencedDeclaration": 4247, + "src": "12303:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -27927,26 +27711,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3963, + "id": 4314, "name": "fallbackExpectation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "11895:19:25", + "referencedDeclaration": 3436, + "src": "12312:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "src": "11886:28:25", + "src": "12303:28:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3965, + "id": 4316, "nodeType": "ExpressionStatement", - "src": "11886:28:25" + "src": "12303:28:26" } ] } @@ -27954,19 +27738,19 @@ { "expression": { "argumentTypes": null, - "id": 3970, + "id": 4321, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3968, + "id": 4319, "name": "invocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "11946:11:25", + "referencedDeclaration": 3440, + "src": "12363:11:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27977,14 +27761,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3969, + "id": 4320, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11961:1:25", + "src": "12378:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -27992,20 +27776,20 @@ }, "value": "1" }, - "src": "11946:16:25", + "src": "12363:16:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3971, + "id": 4322, "nodeType": "ExpressionStatement", - "src": "11946:16:25" + "src": "12363:16:26" }, { "expression": { "argumentTypes": null, - "id": 3982, + "id": 4333, "isConstant": false, "isLValue": false, "isPure": false, @@ -28014,18 +27798,18 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3972, + "id": 4323, "name": "methodIdInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "11966:19:25", + "referencedDeclaration": 3432, + "src": "12383:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3980, + "id": 4331, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -28034,12 +27818,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3976, + "id": 4327, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12013:10:25", + "referencedDeclaration": 3442, + "src": "12430:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28047,12 +27831,12 @@ }, { "argumentTypes": null, - "id": 3977, + "id": 4328, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "12025:8:25", + "referencedDeclaration": 4215, + "src": "12442:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -28072,18 +27856,18 @@ ], "expression": { "argumentTypes": null, - "id": 3974, + "id": 4325, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "11996:3:25", + "referencedDeclaration": 4353, + "src": "12413:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3975, + "id": 4326, "isConstant": false, "isLValue": false, "isPure": true, @@ -28091,13 +27875,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11996:16:25", + "src": "12413:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3978, + "id": 4329, "isConstant": false, "isLValue": false, "isPure": false, @@ -28105,7 +27889,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11996:38:25", + "src": "12413:38:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -28119,18 +27903,18 @@ "typeString": "bytes memory" } ], - "id": 3973, + "id": 4324, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "11986:9:25", + "referencedDeclaration": 4360, + "src": "12403:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3979, + "id": 4330, "isConstant": false, "isLValue": false, "isPure": false, @@ -28138,7 +27922,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11986:49:25", + "src": "12403:49:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28149,7 +27933,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "11966:70:25", + "src": "12383:70:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28160,14 +27944,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3981, + "id": 4332, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12040:1:25", + "src": "12457:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -28175,20 +27959,20 @@ }, "value": "1" }, - "src": "11966:75:25", + "src": "12383:75:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3983, + "id": 4334, "nodeType": "ExpressionStatement", - "src": "11966:75:25" + "src": "12383:75:26" }, { "expression": { "argumentTypes": null, - "id": 3995, + "id": 4346, "isConstant": false, "isLValue": false, "isPure": false, @@ -28197,18 +27981,18 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3984, + "id": 4335, "name": "calldataInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "12045:19:25", + "referencedDeclaration": 3412, + "src": "12462:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3993, + "id": 4344, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -28217,12 +28001,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3988, + "id": 4339, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12092:10:25", + "referencedDeclaration": 3442, + "src": "12509:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28232,18 +28016,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3989, + "id": 4340, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "12104:3:25", + "referencedDeclaration": 4366, + "src": "12521:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3990, + "id": 4341, "isConstant": false, "isLValue": false, "isPure": false, @@ -28251,7 +28035,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12104:8:25", + "src": "12521:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -28271,18 +28055,18 @@ ], "expression": { "argumentTypes": null, - "id": 3986, + "id": 4337, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12075:3:25", + "referencedDeclaration": 4353, + "src": "12492:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3987, + "id": 4338, "isConstant": false, "isLValue": false, "isPure": true, @@ -28290,13 +28074,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12075:16:25", + "src": "12492:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3991, + "id": 4342, "isConstant": false, "isLValue": false, "isPure": false, @@ -28304,7 +28088,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12075:38:25", + "src": "12492:38:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -28318,18 +28102,18 @@ "typeString": "bytes memory" } ], - "id": 3985, + "id": 4336, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12065:9:25", + "referencedDeclaration": 4360, + "src": "12482:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3992, + "id": 4343, "isConstant": false, "isLValue": false, "isPure": false, @@ -28337,7 +28121,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12065:49:25", + "src": "12482:49:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28348,7 +28132,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "12045:70:25", + "src": "12462:70:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28359,14 +28143,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3994, + "id": 4345, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12119:1:25", + "src": "12536:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -28374,83 +28158,81 @@ }, "value": "1" }, - "src": "12045:75:25", + "src": "12462:75:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3996, + "id": 4347, "nodeType": "ExpressionStatement", - "src": "12045:75:25" + "src": "12462:75:26" }, { "externalReferences": [ { "result": { - "declaration": 3896, + "declaration": 4247, "isOffset": false, "isSlot": false, - "src": "12156:6:25", + "src": "12588:6:26", "valueSize": 1 } }, { "result": { - "declaration": 3896, + "declaration": 4247, "isOffset": false, "isSlot": false, - "src": "12171:6:25", + "src": "12573:6:26", "valueSize": 1 } } ], - "id": 3997, + "id": 4348, "nodeType": "InlineAssembly", "operations": "{\n return(add(0x20, result), mload(result))\n}", - "src": "12125:61:25" + "src": "12542:61:26" } ] }, "documentation": null, - "id": 3999, + "id": 4350, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "fallback", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3861, + "id": 4212, "nodeType": "ParameterList", "parameters": [], - "src": "10988:2:25" + "src": "11405:2:26" }, - "payable": true, "returnParameters": { - "id": 3862, + "id": 4213, "nodeType": "ParameterList", "parameters": [], - "src": "11008:0:25" + "src": "11425:0:26" }, - "scope": 4000, - "src": "10980:1206:25", + "scope": 4351, + "src": "11397:1206:26", "stateMutability": "payable", "superFunction": null, "visibility": "external" } ], - "scope": 4001, - "src": "3453:8735:25" + "scope": 4352, + "src": "3610:8995:26" } ], - "src": "0:12189:25" + "src": "0:12606:26" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.946Z" + "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 index 733a0f8f..cba2d48d 100644 --- a/safe-contracts/build/contracts/MockInterface.json +++ b/safe-contracts/build/contracts/MockInterface.json @@ -211,7 +211,7 @@ "constant": false, "inputs": [ { - "name": "calldata", + "name": "call", "type": "bytes" }, { @@ -229,7 +229,7 @@ "constant": false, "inputs": [ { - "name": "calldata", + "name": "call", "type": "bytes" }, { @@ -247,7 +247,7 @@ "constant": false, "inputs": [ { - "name": "calldata", + "name": "call", "type": "bytes" }, { @@ -265,7 +265,7 @@ "constant": false, "inputs": [ { - "name": "calldata", + "name": "call", "type": "bytes" }, { @@ -283,7 +283,7 @@ "constant": false, "inputs": [ { - "name": "calldata", + "name": "data", "type": "bytes" } ], @@ -297,7 +297,7 @@ "constant": false, "inputs": [ { - "name": "calldata", + "name": "data", "type": "bytes" }, { @@ -315,7 +315,7 @@ "constant": false, "inputs": [ { - "name": "calldata", + "name": "data", "type": "bytes" } ], @@ -362,7 +362,7 @@ "constant": false, "inputs": [ { - "name": "calldata", + "name": "call", "type": "bytes" } ], @@ -391,31 +391,31 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.23;\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 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 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 method, bytes response) external;\n\tfunction givenMethodReturnBool(bytes method, bool response) external;\n\tfunction givenMethodReturnUint(bytes method, uint response) external;\n\tfunction givenMethodReturnAddress(bytes method, address response) external;\n\n\tfunction givenMethodRevert(bytes method) external;\n\tfunction givenMethodRevertWithMessage(bytes method, string message) external;\n\tfunction givenMethodRunOutOfGas(bytes 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 calldata 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, bytes response) external;\n\tfunction givenCalldataReturnBool(bytes calldata, bool response) external;\n\tfunction givenCalldataReturnUint(bytes calldata, uint response) external;\n\tfunction givenCalldataReturnAddress(bytes calldata, address response) external;\n\n\tfunction givenCalldataRevert(bytes calldata) external;\n\tfunction givenCalldataRevertWithMessage(bytes calldata, string message) external;\n\tfunction givenCalldataRunOutOfGas(bytes calldata) 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 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 calldata ABI encoded calldata (methodId and arguments)\n\t */\n\tfunction invocationCountForCalldata(bytes calldata) 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 response) internal {\n\t\tfallbackMockType = MockType.Return;\n\t\tfallbackExpectation = response;\n\t}\n\n\tfunction givenAnyReturn(bytes 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 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 call, bytes response) private {\n\t\tcalldataMockTypes[call] = MockType.Return;\n\t\tcalldataExpectations[call] = response;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenCalldataReturn(bytes call, bytes response) external {\n\t\t_givenCalldataReturn(call, response);\n\t}\n\n\tfunction givenCalldataReturnBool(bytes call, bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenMethodReturn(call, uintToBytes(flag));\n\t}\n\n\tfunction givenCalldataReturnUint(bytes call, uint response) external {\n\t\t_givenMethodReturn(call, uintToBytes(response));\n\t}\n\n\tfunction givenCalldataReturnAddress(bytes call, address response) external {\n\t\t_givenMethodReturn(call, addressToBytes(response));\n\t}\n\n\tfunction _givenMethodReturn(bytes call, bytes 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 call, bytes response) external {\n\t\t_givenMethodReturn(call, response);\n\t}\n\n\tfunction givenMethodReturnBool(bytes 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 call, uint response) external {\n\t\t_givenMethodReturn(call, uintToBytes(response));\n\t}\n\n\tfunction givenMethodReturnAddress(bytes call, address response) external {\n\t\t_givenMethodReturn(call, addressToBytes(response));\n\t}\n\n\tfunction givenCalldataRevert(bytes call) external {\n\t\tcalldataMockTypes[call] = MockType.Revert;\n\t\tcalldataRevertMessage[call] = \"\";\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRevert(bytes 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 call, string message) external {\n\t\tcalldataMockTypes[call] = MockType.Revert;\n\t\tcalldataRevertMessage[call] = message;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRevertWithMessage(bytes call, string 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 call) external {\n\t\tcalldataMockTypes[call] = MockType.OutOfGas;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRunOutOfGas(bytes 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 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 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 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 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 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", + "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": [ - 4000 + 4351 ], "MockInterface": [ - 3021 + 3372 ] }, - "id": 4001, + "id": 4352, "nodeType": "SourceUnit", "nodes": [ { - "id": 2877, + "id": 3228, "literals": [ "solidity", "^", - "0.4", - ".23" + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:23:26" }, { "baseContracts": [], @@ -423,9 +423,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 3021, + "id": 3372, "linearizedBaseContracts": [ - 3021 + 3372 ], "name": "MockInterface", "nodeType": "ContractDefinition", @@ -433,35 +433,34 @@ { "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": 2882, + "id": 3233, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 2880, + "id": 3231, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2879, + "id": 3230, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2882, - "src": "358:14:25", + "scope": 3233, + "src": "357:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2878, + "id": 3229, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "358:5:25", + "src": "357:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -471,17 +470,16 @@ "visibility": "internal" } ], - "src": "357:16:25" + "src": "356:25:26" }, - "payable": false, "returnParameters": { - "id": 2881, + "id": 3232, "nodeType": "ParameterList", "parameters": [], - "src": "382:0:25" + "src": "390:0:26" }, - "scope": 3021, - "src": "334:49:25", + "scope": 3372, + "src": "333:58:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -489,24 +487,23 @@ { "body": null, "documentation": null, - "id": 2887, + "id": 3238, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturnBool", "nodeType": "FunctionDefinition", "parameters": { - "id": 2885, + "id": 3236, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2884, + "id": 3235, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2887, - "src": "413:13:25", + "scope": 3238, + "src": "421:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -514,10 +511,10 @@ "typeString": "bool" }, "typeName": { - "id": 2883, + "id": 3234, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "413:4:25", + "src": "421:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -527,17 +524,16 @@ "visibility": "internal" } ], - "src": "412:15:25" + "src": "420:15:26" }, - "payable": false, "returnParameters": { - "id": 2886, + "id": 3237, "nodeType": "ParameterList", "parameters": [], - "src": "436:0:25" + "src": "444:0:26" }, - "scope": 3021, - "src": "385:52:25", + "scope": 3372, + "src": "393:52:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -545,24 +541,23 @@ { "body": null, "documentation": null, - "id": 2892, + "id": 3243, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturnUint", "nodeType": "FunctionDefinition", "parameters": { - "id": 2890, + "id": 3241, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2889, + "id": 3240, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2892, - "src": "467:13:25", + "scope": 3243, + "src": "475:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -570,10 +565,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2888, + "id": 3239, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "467:4:25", + "src": "475:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -583,17 +578,16 @@ "visibility": "internal" } ], - "src": "466:15:25" + "src": "474:15:26" }, - "payable": false, "returnParameters": { - "id": 2891, + "id": 3242, "nodeType": "ParameterList", "parameters": [], - "src": "490:0:25" + "src": "498:0:26" }, - "scope": 3021, - "src": "439:52:25", + "scope": 3372, + "src": "447:52:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -601,24 +595,23 @@ { "body": null, "documentation": null, - "id": 2897, + "id": 3248, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturnAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 2895, + "id": 3246, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2894, + "id": 3245, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2897, - "src": "524:16:25", + "scope": 3248, + "src": "532:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -626,10 +619,11 @@ "typeString": "address" }, "typeName": { - "id": 2893, + "id": 3244, "name": "address", "nodeType": "ElementaryTypeName", - "src": "524:7:25", + "src": "532:7:26", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -639,17 +633,16 @@ "visibility": "internal" } ], - "src": "523:18:25" + "src": "531:18:26" }, - "payable": false, "returnParameters": { - "id": 2896, + "id": 3247, "nodeType": "ParameterList", "parameters": [], - "src": "550:0:25" + "src": "558:0:26" }, - "scope": 3021, - "src": "493:58:25", + "scope": 3372, + "src": "501:58:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -657,28 +650,26 @@ { "body": null, "documentation": null, - "id": 2900, + "id": 3251, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyRevert", "nodeType": "FunctionDefinition", "parameters": { - "id": 2898, + "id": 3249, "nodeType": "ParameterList", "parameters": [], - "src": "577:2:25" + "src": "585:2:26" }, - "payable": false, "returnParameters": { - "id": 2899, + "id": 3250, "nodeType": "ParameterList", "parameters": [], - "src": "588:0:25" + "src": "596:0:26" }, - "scope": 3021, - "src": "554:35:25", + "scope": 3372, + "src": "562:35:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -686,35 +677,34 @@ { "body": null, "documentation": null, - "id": 2905, + "id": 3256, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyRevertWithMessage", "nodeType": "FunctionDefinition", "parameters": { - "id": 2903, + "id": 3254, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2902, + "id": 3253, "name": "message", "nodeType": "VariableDeclaration", - "scope": 2905, - "src": "626:14:25", + "scope": 3256, + "src": "634:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string" }, "typeName": { - "id": 2901, + "id": 3252, "name": "string", "nodeType": "ElementaryTypeName", - "src": "626:6:25", + "src": "634:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -724,17 +714,16 @@ "visibility": "internal" } ], - "src": "625:16:25" + "src": "633:25:26" }, - "payable": false, "returnParameters": { - "id": 2904, + "id": 3255, "nodeType": "ParameterList", "parameters": [], - "src": "650:0:25" + "src": "667:0:26" }, - "scope": 3021, - "src": "591:60:25", + "scope": 3372, + "src": "599:69:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -742,28 +731,26 @@ { "body": null, "documentation": null, - "id": 2908, + "id": 3259, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyRunOutOfGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 2906, + "id": 3257, "nodeType": "ParameterList", "parameters": [], - "src": "681:2:25" + "src": "698:2:26" }, - "payable": false, "returnParameters": { - "id": 2907, + "id": 3258, "nodeType": "ParameterList", "parameters": [], - "src": "692:0:25" + "src": "709:0:26" }, - "scope": 3021, - "src": "653:40:25", + "scope": 3372, + "src": "670:40:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -771,35 +758,34 @@ { "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": 2915, + "id": 3266, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenMethodReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 2913, + "id": 3264, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2910, + "id": 3261, "name": "method", "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1222:12:25", + "scope": 3266, + "src": "1239:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2909, + "id": 3260, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1222:5:25", + "src": "1239:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -810,22 +796,22 @@ }, { "constant": false, - "id": 2912, + "id": 3263, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1236:14:25", + "scope": 3266, + "src": "1262:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2911, + "id": 3262, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1236:5:25", + "src": "1262:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -835,17 +821,16 @@ "visibility": "internal" } ], - "src": "1221:30:25" + "src": "1238:48:26" }, - "payable": false, "returnParameters": { - "id": 2914, + "id": 3265, "nodeType": "ParameterList", "parameters": [], - "src": "1260:0:25" + "src": "1295:0:26" }, - "scope": 3021, - "src": "1195:66:25", + "scope": 3372, + "src": "1212:84:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -853,35 +838,34 @@ { "body": null, "documentation": null, - "id": 2922, + "id": 3273, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenMethodReturnBool", "nodeType": "FunctionDefinition", "parameters": { - "id": 2920, + "id": 3271, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2917, + "id": 3268, "name": "method", "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1294:12:25", + "scope": 3273, + "src": "1329:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2916, + "id": 3267, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1294:5:25", + "src": "1329:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -892,11 +876,11 @@ }, { "constant": false, - "id": 2919, + "id": 3270, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1308:13:25", + "scope": 3273, + "src": "1352:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -904,10 +888,10 @@ "typeString": "bool" }, "typeName": { - "id": 2918, + "id": 3269, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1308:4:25", + "src": "1352:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -917,17 +901,16 @@ "visibility": "internal" } ], - "src": "1293:29:25" + "src": "1328:38:26" }, - "payable": false, "returnParameters": { - "id": 2921, + "id": 3272, "nodeType": "ParameterList", "parameters": [], - "src": "1331:0:25" + "src": "1375:0:26" }, - "scope": 3021, - "src": "1263:69:25", + "scope": 3372, + "src": "1298:78:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -935,4409 +918,12 @@ { "body": null, "documentation": null, - "id": 2929, + "id": 3280, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenMethodReturnUint", "nodeType": "FunctionDefinition", - "parameters": { - "id": 2927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2924, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1365:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2923, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1365:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2926, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1379:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2925, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1379:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1364:29:25" - }, - "payable": false, - "returnParameters": { - "id": 2928, - "nodeType": "ParameterList", - "parameters": [], - "src": "1402:0:25" - }, - "scope": 3021, - "src": "1334:69:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2936, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2934, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2931, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1439:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2930, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1439:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2933, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1453:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2932, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1453:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1438:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2935, - "nodeType": "ParameterList", - "parameters": [], - "src": "1479:0:25" - }, - "scope": 3021, - "src": "1405:75:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2941, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2939, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2938, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2941, - "src": "1510:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2937, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1510:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1509:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2940, - "nodeType": "ParameterList", - "parameters": [], - "src": "1532:0:25" - }, - "scope": 3021, - "src": "1483:50:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2948, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2943, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1573:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2942, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1573:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2945, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1587:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2944, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1587:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1572:30:25" - }, - "payable": false, - "returnParameters": { - "id": 2947, - "nodeType": "ParameterList", - "parameters": [], - "src": "1611:0:25" - }, - "scope": 3021, - "src": "1535:77:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2953, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2950, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2953, - "src": "1646:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1646:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1645:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2952, - "nodeType": "ParameterList", - "parameters": [], - "src": "1668:0:25" - }, - "scope": 3021, - "src": "1614:55:25", - "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 calldata ABI encoded calldata (methodId and arguments)\n@param response ABI encoded response that will be returned if contract is invoked with calldata", - "id": 2960, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2958, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2955, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2089:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2954, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2089:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2957, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2105:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2956, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2105:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2088:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2959, - "nodeType": "ParameterList", - "parameters": [], - "src": "2129:0:25" - }, - "scope": 3021, - "src": "2060:70:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2967, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2962, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2165:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2961, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2165:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2964, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2963, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2164:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2966, - "nodeType": "ParameterList", - "parameters": [], - "src": "2204:0:25" - }, - "scope": 3021, - "src": "2132:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2974, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2969, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2240:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2968, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2240:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2971, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2256:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2970, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2256:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2239:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2973, - "nodeType": "ParameterList", - "parameters": [], - "src": "2279:0:25" - }, - "scope": 3021, - "src": "2207:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2981, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2979, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2976, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2318:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2975, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2318:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2978, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2334:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2334:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2317:34:25" - }, - "payable": false, - "returnParameters": { - "id": 2980, - "nodeType": "ParameterList", - "parameters": [], - "src": "2360:0:25" - }, - "scope": 3021, - "src": "2282:79:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2986, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2983, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2986, - "src": "2393:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2982, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2393:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2392:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2985, - "nodeType": "ParameterList", - "parameters": [], - "src": "2417:0:25" - }, - "scope": 3021, - "src": "2364:54:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2993, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2988, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2460:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2987, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2460:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2990, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2476:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2989, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2476:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2459:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [], - "src": "2500:0:25" - }, - "scope": 3021, - "src": "2420:81:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2998, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2996, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2995, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2998, - "src": "2537:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2994, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2537:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2536:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2997, - "nodeType": "ParameterList", - "parameters": [], - "src": "2561:0:25" - }, - "scope": 3021, - "src": "2503:59:25", - "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": 3003, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2999, - "nodeType": "ParameterList", - "parameters": [], - "src": "2691:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3001, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3003, - "src": "2712:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3000, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2712:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2711:6:25" - }, - "scope": 3021, - "src": "2667:51:25", - "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": 3010, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3006, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3005, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3005:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3004, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3005:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3004:14:25" - }, - "payable": false, - "returnParameters": { - "id": 3009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3008, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3037:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3007, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3037:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3036:6:25" - }, - "scope": 3021, - "src": "2971:72:25", - "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 calldata ABI encoded calldata (methodId and arguments)", - "id": 3017, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3263:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3011, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3263:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3262:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3015, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3297:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3014, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3297:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3296:6:25" - }, - "scope": 3021, - "src": "3227:76:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Resets all mocked methods and invocation counts.", - "id": 3020, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3018, - "nodeType": "ParameterList", - "parameters": [], - "src": "3389:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3019, - "nodeType": "ParameterList", - "parameters": [], - "src": "3400:0:25" - }, - "scope": 3021, - "src": "3375:26:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4001, - "src": "26:3377:25" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3022, - "name": "MockInterface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3021, - "src": "3478:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MockInterface_$3021", - "typeString": "contract MockInterface" - } - }, - "id": 3023, - "nodeType": "InheritanceSpecifier", - "src": "3478:13:25" - } - ], - "contractDependencies": [ - 3021 - ], - "contractKind": "contract", - "documentation": "Implementation of the MockInterface.", - "fullyImplemented": true, - "id": 4000, - "linearizedBaseContracts": [ - 4000, - 3021 - ], - "name": "MockContract", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "MockContract.MockType", - "id": 3027, - "members": [ - { - "id": 3024, - "name": "Return", - "nodeType": "EnumValue", - "src": "3511:6:25" - }, - { - "id": 3025, - "name": "Revert", - "nodeType": "EnumValue", - "src": "3519:6:25" - }, - { - "id": 3026, - "name": "OutOfGas", - "nodeType": "EnumValue", - "src": "3527:8:25" - } - ], - "name": "MockType", - "nodeType": "EnumDefinition", - "src": "3495:42:25" - }, - { - "constant": true, - "id": 3030, - "name": "MOCKS_LIST_START", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3541:50:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3028, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3541:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3584:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3033, - "name": "MOCKS_LIST_END", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3594:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes" - }, - "typeName": { - "id": 3031, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3594:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786666", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3633:6:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", - "typeString": "literal_string \"0xff\"" - }, - "value": "0xff" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3038, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3642:71:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3034, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3642:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3036, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "3698:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - ], - "id": 3035, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3688:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3688:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3041, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3716:51:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3039, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3716:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3760:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 3045, - "name": "calldataMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3832:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "typeName": { - "id": 3044, - "keyType": { - "id": 3042, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3840:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "3832:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "valueType": { - "id": 3043, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3851:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3049, - "name": "calldataMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3874:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "typeName": { - "id": 3048, - "keyType": { - "id": 3046, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3882:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3874:26:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3047, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "3891:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3053, - "name": "calldataExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3921:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "typeName": { - "id": 3052, - "keyType": { - "id": 3050, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3929:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3921:23:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "valueType": { - "id": 3051, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3938:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3057, - "name": "calldataRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3968:46:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "typeName": { - "id": 3056, - "keyType": { - "id": 3054, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3976:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3968:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "valueType": { - "id": 3055, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3985:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "calldataInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4017:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3060, - "keyType": { - "id": 3058, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4025:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4017:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3059, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4036:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3065, - "name": "methodIdMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4065:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "typeName": { - "id": 3064, - "keyType": { - "id": 3062, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4073:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4065:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "valueType": { - "id": 3063, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4083:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3069, - "name": "methodIdMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4107:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "typeName": { - "id": 3068, - "keyType": { - "id": 3066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4115:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4107:27:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3067, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4125:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3073, - "name": "methodIdExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4155:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "typeName": { - "id": 3072, - "keyType": { - "id": 3070, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4163:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4155:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "valueType": { - "id": 3071, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4173:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3077, - "name": "methodIdRevertMessages", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4203:48:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "typeName": { - "id": 3076, - "keyType": { - "id": 3074, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4211:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4203:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "valueType": { - "id": 3075, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4221:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3081, - "name": "methodIdInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4254:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3080, - "keyType": { - "id": 3078, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4262:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4254:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3079, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4273:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3083, - "name": "fallbackMockType", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4302:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "typeName": { - "contractScope": null, - "id": 3082, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4302:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3085, - "name": "fallbackExpectation", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4330:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes" - }, - "typeName": { - "id": 3084, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4330:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3087, - "name": "fallbackRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4358:28:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3086, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4358:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3089, - "name": "invocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4389:16:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3088, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4389:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3091, - "name": "resetCount", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4408:15:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3090, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4408:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3106, - "nodeType": "Block", - "src": "4448:114:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3094, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4452:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3096, - "indexExpression": { - "argumentTypes": null, - "id": 3095, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4466:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4452:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3097, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "4486:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "4452:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3099, - "nodeType": "ExpressionStatement", - "src": "4452:48:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3100, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4504:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3102, - "indexExpression": { - "argumentTypes": null, - "id": 3101, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4518:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4504:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3103, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4540:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4504:54:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3105, - "nodeType": "ExpressionStatement", - "src": "4504:54:25" - } - ] - }, - "documentation": null, - "id": 3107, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3092, - "nodeType": "ParameterList", - "parameters": [], - "src": "4438:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3093, - "nodeType": "ParameterList", - "parameters": [], - "src": "4448:0:25" - }, - "scope": 4000, - "src": "4427:135:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3140, - "nodeType": "Block", - "src": "4619:196:25", - "statements": [ - { - "assignments": [ - 3113 - ], - "declarations": [ - { - "constant": false, - "id": 3113, - "name": "callHash", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4623:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3112, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4623:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3117, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3115, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4652:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3114, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4642:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4642:15:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4623:34:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3118, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4665:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3120, - "indexExpression": { - "argumentTypes": null, - "id": 3119, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4679:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4665:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3121, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4665:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4699:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4665:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3139, - "nodeType": "IfStatement", - "src": "4661:151:25", - "trueBody": { - "id": 3138, - "nodeType": "Block", - "src": "4702:110:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3124, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4707:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3126, - "indexExpression": { - "argumentTypes": null, - "id": 3125, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4721:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4707:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3127, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4733:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3129, - "indexExpression": { - "argumentTypes": null, - "id": 3128, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4747:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4733:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "4707:57:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3131, - "nodeType": "ExpressionStatement", - "src": "4707:57:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3132, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4769:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3134, - "indexExpression": { - "argumentTypes": null, - "id": 3133, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4783:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4769:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3135, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4803:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "4769:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3137, - "nodeType": "ExpressionStatement", - "src": "4769:38:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3141, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackCalldataMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3109, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4592:17:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3108, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4592:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4591:19:25" - }, - "payable": false, - "returnParameters": { - "id": 3111, - "nodeType": "ParameterList", - "parameters": [], - "src": "4619:0:25" - }, - "scope": 4000, - "src": "4565:250:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3167, - "nodeType": "Block", - "src": "4870:161:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3146, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4878:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3148, - "indexExpression": { - "argumentTypes": null, - "id": 3147, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4892:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4878:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4905:3:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "4878:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3166, - "nodeType": "IfStatement", - "src": "4874:154:25", - "trueBody": { - "id": 3165, - "nodeType": "Block", - "src": "4910:118:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3151, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4915:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3153, - "indexExpression": { - "argumentTypes": null, - "id": 3152, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4929:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4915:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3154, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4941:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3156, - "indexExpression": { - "argumentTypes": null, - "id": 3155, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4955:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4941:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4915:59:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3158, - "nodeType": "ExpressionStatement", - "src": "4915:59:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3159, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4979:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3161, - "indexExpression": { - "argumentTypes": null, - "id": 3160, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4993:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4979:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3162, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "5015:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4979:44:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3164, - "nodeType": "ExpressionStatement", - "src": "4979:44:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3168, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackMethodIdMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3143, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3168, - "src": "4845:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3142, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4845:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4844:17:25" - }, - "payable": false, - "returnParameters": { - "id": 3145, - "nodeType": "ParameterList", - "parameters": [], - "src": "4870:0:25" - }, - "scope": 4000, - "src": "4818:213:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3182, - "nodeType": "Block", - "src": "5084:76:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3173, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5088:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3174, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5107:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5107:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5088:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3177, - "nodeType": "ExpressionStatement", - "src": "5088:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3178, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "5126:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3179, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3170, - "src": "5148:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "5126:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3181, - "nodeType": "ExpressionStatement", - "src": "5126:30:25" - } - ] - }, - "documentation": null, - "id": 3183, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3170, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3183, - "src": "5059:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3169, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5059:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5058:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [], - "src": "5084:0:25" - }, - "scope": 4000, - "src": "5034:126:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3192, - "nodeType": "Block", - "src": "5212:33:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3189, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "5232:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3188, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5216:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5216:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3191, - "nodeType": "ExpressionStatement", - "src": "5216:25:25" - } - ] - }, - "documentation": null, - "id": 3193, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3186, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3185, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3193, - "src": "5187:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3184, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5187:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5186:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3187, - "nodeType": "ParameterList", - "parameters": [], - "src": "5212:0:25" - }, - "scope": 4000, - "src": "5163:82:25", - "stateMutability": "nonpayable", - "superFunction": 2882, - "visibility": "external" - }, - { - "body": { - "id": 3211, - "nodeType": "Block", - "src": "5300:74:25", - "statements": [ - { - "assignments": [ - 3199 - ], - "declarations": [ - { - "constant": false, - "id": 3199, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5304:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3198, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5304:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3204, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3200, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3195, - "src": "5316:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5331:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5316:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5304:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3207, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3199, - "src": "5364:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3206, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5352:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5352:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3205, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5336:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5336:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3210, - "nodeType": "ExpressionStatement", - "src": "5336:34:25" - } - ] - }, - "documentation": null, - "id": 3212, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3195, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5276:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3194, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5276:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5275:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3197, - "nodeType": "ParameterList", - "parameters": [], - "src": "5300:0:25" - }, - "scope": 4000, - "src": "5248:126:25", - "stateMutability": "nonpayable", - "superFunction": 2887, - "visibility": "external" - }, - { - "body": { - "id": 3223, - "nodeType": "Block", - "src": "5429:47:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3219, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3214, - "src": "5461:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3218, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5449:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5449:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5433:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5433:38:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3222, - "nodeType": "ExpressionStatement", - "src": "5433:38:25" - } - ] - }, - "documentation": null, - "id": 3224, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3214, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3224, - "src": "5405:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3213, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5405:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5404:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3216, - "nodeType": "ParameterList", - "parameters": [], - "src": "5429:0:25" - }, - "scope": 4000, - "src": "5377:99:25", - "stateMutability": "nonpayable", - "superFunction": 2892, - "visibility": "external" - }, - { - "body": { - "id": 3235, - "nodeType": "Block", - "src": "5537:49:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3231, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3226, - "src": "5572:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3230, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "5557:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5557:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3229, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5541:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5541:41:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3234, - "nodeType": "ExpressionStatement", - "src": "5541:41:25" - } - ] - }, - "documentation": null, - "id": 3236, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3227, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3226, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "5510:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3225, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5510:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5509:18:25" - }, - "payable": false, - "returnParameters": { - "id": 3228, - "nodeType": "ParameterList", - "parameters": [], - "src": "5537:0:25" - }, - "scope": 4000, - "src": "5479:107:25", - "stateMutability": "nonpayable", - "superFunction": 2897, - "visibility": "external" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "5624:72:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3239, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5628:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3240, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5647:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5647:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5628:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3243, - "nodeType": "ExpressionStatement", - "src": "5628:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3244, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5666:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5690:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "5666:26:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3247, - "nodeType": "ExpressionStatement", - "src": "5666:26:25" - } - ] - }, - "documentation": null, - "id": 3249, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3237, - "nodeType": "ParameterList", - "parameters": [], - "src": "5612:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3238, - "nodeType": "ParameterList", - "parameters": [], - "src": "5624:0:25" - }, - "scope": 4000, - "src": "5589:107:25", - "stateMutability": "nonpayable", - "superFunction": 2900, - "visibility": "external" - }, - { - "body": { - "id": 3263, - "nodeType": "Block", - "src": "5759:77:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3254, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5763:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3255, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5782:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5782:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5763:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3258, - "nodeType": "ExpressionStatement", - "src": "5763:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3259, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5801:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3260, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "5825:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "5801:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3262, - "nodeType": "ExpressionStatement", - "src": "5801:31:25" - } - ] - }, - "documentation": null, - "id": 3264, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3264, - "src": "5734:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3250, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5734:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5733:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3253, - "nodeType": "ParameterList", - "parameters": [], - "src": "5759:0:25" - }, - "scope": 4000, - "src": "5699:137:25", - "stateMutability": "nonpayable", - "superFunction": 2905, - "visibility": "external" - }, - { - "body": { - "id": 3272, - "nodeType": "Block", - "src": "5879:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3267, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5883:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3268, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5902:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5902:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5883:36:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3271, - "nodeType": "ExpressionStatement", - "src": "5883:36:25" - } - ] - }, - "documentation": null, - "id": 3273, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3265, - "nodeType": "ParameterList", - "parameters": [], - "src": "5867:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3266, - "nodeType": "ParameterList", - "parameters": [], - "src": "5879:0:25" - }, - "scope": 4000, - "src": "5839:84:25", - "stateMutability": "nonpayable", - "superFunction": 2908, - "visibility": "external" - }, - { - "body": { - "id": 3297, - "nodeType": "Block", - "src": "5993:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3280, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "5997:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3282, - "indexExpression": { - "argumentTypes": null, - "id": 3281, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6015:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5997:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3283, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6023:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6023:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5997:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3286, - "nodeType": "ExpressionStatement", - "src": "5997:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3287, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "6042:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3289, - "indexExpression": { - "argumentTypes": null, - "id": 3288, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6063:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6042:26:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3290, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6071:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6042:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3292, - "nodeType": "ExpressionStatement", - "src": "6042:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3294, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6101:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3293, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6083:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6083:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3296, - "nodeType": "ExpressionStatement", - "src": "6083:23:25" - } - ] - }, - "documentation": null, - "id": 3298, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenCalldataReturn", - "nodeType": "FunctionDefinition", "parameters": { "id": 3278, "nodeType": "ParameterList", @@ -5345,21 +931,21 @@ { "constant": false, "id": 3275, - "name": "call", + "name": "method", "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5956:10:25", + "scope": 3280, + "src": "1409:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 3274, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5956:5:25", + "src": "1409:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5373,152 +959,73 @@ "id": 3277, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5968:14:25", + "scope": 3280, + "src": "1432:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { "id": 3276, - "name": "bytes", + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5968:5:25", + "src": "1432:4:26", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "5955:28:25" + "src": "1408:38:26" }, - "payable": false, "returnParameters": { "id": 3279, "nodeType": "ParameterList", "parameters": [], - "src": "5993:0:25" + "src": "1455:0:26" }, - "scope": 4000, - "src": "5926:184:25", + "scope": 3372, + "src": "1378:78:26", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "private" + "visibility": "external" }, { - "body": { - "id": 3310, - "nodeType": "Block", - "src": "6180:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3306, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3300, - "src": "6205:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3307, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "6211:8:25", - "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": 3305, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3298, - "src": "6184:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6184:36:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3309, - "nodeType": "ExpressionStatement", - "src": "6184:36:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3311, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3287, + "implemented": false, + "kind": "function", "modifiers": [], - "name": "givenCalldataReturn", + "name": "givenMethodReturnAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 3303, + "id": 3285, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3300, - "name": "call", + "id": 3282, + "name": "method", "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6142:10:25", + "scope": 3287, + "src": "1492:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3299, + "id": 3281, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6142:5:25", + "src": "1492:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5529,22 +1036,77 @@ }, { "constant": false, - "id": 3302, + "id": 3284, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6154:14:25", + "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": 3301, + "id": 3288, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6154:5:25", + "src": "1572:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5554,240 +1116,240 @@ "visibility": "internal" } ], - "src": "6141:28:25" + "src": "1571:23:26" }, - "payable": false, "returnParameters": { - "id": 3304, + "id": 3291, "nodeType": "ParameterList", "parameters": [], - "src": "6180:0:25" + "src": "1603:0:26" }, - "scope": 4000, - "src": "6113:111:25", + "scope": 3372, + "src": "1545:59:26", "stateMutability": "nonpayable", - "superFunction": 2960, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3332, - "nodeType": "Block", - "src": "6296:83:25", - "statements": [ + "body": null, + "documentation": null, + "id": 3299, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "givenMethodRevertWithMessage", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3297, + "nodeType": "ParameterList", + "parameters": [ { - "assignments": [ - 3319 - ], - "declarations": [ - { - "constant": false, - "id": 3319, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6300:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3318, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6300:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3324, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3320, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3315, - "src": "6312:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6312:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6323:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, + "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_uint8", - "typeString": "uint8" + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6300:28:25" + "value": null, + "visibility": "internal" }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3326, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3313, - "src": "6351:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3328, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "6369:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3327, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6357:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6357:17:25", - "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": 3325, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6332:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6332:43:25", + "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_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "id": 3331, - "nodeType": "ExpressionStatement", - "src": "6332:43:25" + "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": 3333, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "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", @@ -5800,10 +1362,10 @@ "id": 3313, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6260:10:25", + "scope": 3318, + "src": "2273:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" @@ -5812,7 +1374,7 @@ "id": 3312, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6260:5:25", + "src": "2273:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5826,8 +1388,8 @@ "id": 3315, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6272:13:25", + "scope": 3318, + "src": "2294:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5838,7 +1400,7 @@ "id": 3314, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6272:4:25", + "src": "2294:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5848,166 +1410,51 @@ "visibility": "internal" } ], - "src": "6259:27:25" + "src": "2272:36:26" }, - "payable": false, "returnParameters": { "id": 3317, "nodeType": "ParameterList", "parameters": [], - "src": "6296:0:25" + "src": "2317:0:26" }, - "scope": 4000, - "src": "6227:152:25", + "scope": 3372, + "src": "2240:78:26", "stateMutability": "nonpayable", - "superFunction": 2967, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3347, - "nodeType": "Block", - "src": "6451:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3341, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3335, - "src": "6474:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3343, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "6492:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3342, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6480:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6480:21:25", - "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": 3340, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6455:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6455:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3346, - "nodeType": "ExpressionStatement", - "src": "6455:47:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3348, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3325, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataReturnUint", "nodeType": "FunctionDefinition", "parameters": { - "id": 3338, + "id": 3323, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3335, + "id": 3320, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6415:10:25", + "scope": 3325, + "src": "2353:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3334, + "id": 3319, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6415:5:25", + "src": "2353:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6018,11 +1465,11 @@ }, { "constant": false, - "id": 3337, + "id": 3322, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6427:13:25", + "scope": 3325, + "src": "2374:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6030,10 +1477,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3336, + "id": 3321, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6427:4:25", + "src": "2374:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6043,166 +1490,51 @@ "visibility": "internal" } ], - "src": "6414:27:25" + "src": "2352:36:26" }, - "payable": false, "returnParameters": { - "id": 3339, + "id": 3324, "nodeType": "ParameterList", "parameters": [], - "src": "6451:0:25" + "src": "2397:0:26" }, - "scope": 4000, - "src": "6382:124:25", + "scope": 3372, + "src": "2320:78:26", "stateMutability": "nonpayable", - "superFunction": 2974, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3362, - "nodeType": "Block", - "src": "6584:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3356, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "6607:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3358, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3352, - "src": "6628:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3357, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "6613:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:24:25", - "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": 3355, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6588:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6588:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3361, - "nodeType": "ExpressionStatement", - "src": "6588:50:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3363, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3332, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataReturnAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 3353, + "id": 3330, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3350, + "id": 3327, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6545:10:25", + "scope": 3332, + "src": "2436:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3349, + "id": 3326, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6545:5:25", + "src": "2436:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6213,11 +1545,11 @@ }, { "constant": false, - "id": 3352, + "id": 3329, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6557:16:25", + "scope": 3332, + "src": "2457:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6225,10 +1557,11 @@ "typeString": "address" }, "typeName": { - "id": 3351, + "id": 3328, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6557:7:25", + "src": "2457:7:26", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6238,1512 +1571,51 @@ "visibility": "internal" } ], - "src": "6544:30:25" + "src": "2435:39:26" }, - "payable": false, "returnParameters": { - "id": 3354, + "id": 3331, "nodeType": "ParameterList", "parameters": [], - "src": "6584:0:25" + "src": "2483:0:26" }, - "scope": 4000, - "src": "6509:133:25", - "stateMutability": "nonpayable", - "superFunction": 2981, - "visibility": "external" - }, - { - "body": { - "id": 3393, - "nodeType": "Block", - "src": "6709:164:25", - "statements": [ - { - "assignments": [ - 3371 - ], - "declarations": [ - { - "constant": false, - "id": 3371, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6713:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3370, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "6713:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3375, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3373, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3365, - "src": "6743:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3372, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "6729:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6729:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6713:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3376, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "6752:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3378, - "indexExpression": { - "argumentTypes": null, - "id": 3377, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6770:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6752:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3379, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6780:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6780:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6752:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3382, - "nodeType": "ExpressionStatement", - "src": "6752:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3383, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "6799:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3385, - "indexExpression": { - "argumentTypes": null, - "id": 3384, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6820:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6799:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3386, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3367, - "src": "6830:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6799:39:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3388, - "nodeType": "ExpressionStatement", - "src": "6799:39:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3390, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6860:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3389, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "6842:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6842:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3392, - "nodeType": "ExpressionStatement", - "src": "6842:25:25" - } - ] - }, - "documentation": null, - "id": 3394, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3368, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3365, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6673:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3364, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6673:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3367, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6685:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3366, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6685:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6672:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3369, - "nodeType": "ParameterList", - "parameters": [], - "src": "6709:0:25" - }, - "scope": 4000, - "src": "6645:228:25", + "scope": 3372, + "src": "2400:84:26", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3406, - "nodeType": "Block", - "src": "6940:42:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3402, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "6963:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3403, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "6969:8:25", - "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": 3401, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6944:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6944:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3405, - "nodeType": "ExpressionStatement", - "src": "6944:34:25" - } - ] - }, - "documentation": null, - "id": 3407, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3396, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6903:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3395, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6903:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3398, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6915:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3397, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6915:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6902:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3400, - "nodeType": "ParameterList", - "parameters": [], - "src": "6940:0:25" - }, - "scope": 4000, - "src": "6876:106:25", - "stateMutability": "nonpayable", - "superFunction": 2915, "visibility": "external" }, { - "body": { - "id": 3428, - "nodeType": "Block", - "src": "7052:83:25", - "statements": [ - { - "assignments": [ - 3415 - ], - "declarations": [ - { - "constant": false, - "id": 3415, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7056:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3414, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7056:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3420, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3416, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3411, - "src": "7068:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7083:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "7068:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7079:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7056:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3422, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3409, - "src": "7107:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3424, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3415, - "src": "7125:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3423, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7113:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7113:17:25", - "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": 3421, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7088:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7088:43:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3427, - "nodeType": "ExpressionStatement", - "src": "7088:43:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3429, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3412, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3409, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7016:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3408, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7016:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3411, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7028:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3410, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7028:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7015:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3413, - "nodeType": "ParameterList", - "parameters": [], - "src": "7052:0:25" - }, - "scope": 4000, - "src": "6985:150:25", - "stateMutability": "nonpayable", - "superFunction": 2922, - "visibility": "external" - }, - { - "body": { - "id": 3443, - "nodeType": "Block", - "src": "7205:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3437, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3431, - "src": "7228:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3439, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3433, - "src": "7246:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3438, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7234:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7234:21:25", - "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": 3436, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7209:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7209:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3442, - "nodeType": "ExpressionStatement", - "src": "7209:47:25" - } - ] - }, - "documentation": null, - "id": 3444, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3434, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3431, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7169:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3430, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7169:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3433, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3432, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7168:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3435, - "nodeType": "ParameterList", - "parameters": [], - "src": "7205:0:25" - }, - "scope": 4000, - "src": "7138:122:25", - "stateMutability": "nonpayable", - "superFunction": 2929, - "visibility": "external" - }, - { - "body": { - "id": 3458, - "nodeType": "Block", - "src": "7336:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3452, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "7359:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3454, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3448, - "src": "7380:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3453, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "7365:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7365:24:25", - "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": 3451, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7340:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7340:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3457, - "nodeType": "ExpressionStatement", - "src": "7340:50:25" - } - ] - }, - "documentation": null, - "id": 3459, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7297:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3445, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7297:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3448, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7309:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3447, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7309:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7296:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3450, - "nodeType": "ParameterList", - "parameters": [], - "src": "7336:0:25" - }, - "scope": 4000, - "src": "7263:131:25", - "stateMutability": "nonpayable", - "superFunction": 2936, - "visibility": "external" - }, - { - "body": { - "id": 3481, - "nodeType": "Block", - "src": "7447:112:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3464, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7451:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3466, - "indexExpression": { - "argumentTypes": null, - "id": 3465, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7469:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7451:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3467, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7477:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7477:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7451:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3470, - "nodeType": "ExpressionStatement", - "src": "7451:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3471, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7496:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3473, - "indexExpression": { - "argumentTypes": null, - "id": 3472, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7518:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7496:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7526:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "7496:32:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3476, - "nodeType": "ExpressionStatement", - "src": "7496:32:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3478, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7550:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3477, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7532:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7532:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3480, - "nodeType": "ExpressionStatement", - "src": "7532:23:25" - } - ] - }, - "documentation": null, - "id": 3482, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3337, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataRevert", "nodeType": "FunctionDefinition", "parameters": { - "id": 3462, + "id": 3335, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3461, - "name": "call", + "id": 3334, + "name": "data", "nodeType": "VariableDeclaration", - "scope": 3482, - "src": "7426:10:25", + "scope": 3337, + "src": "2516:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3460, + "id": 3333, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7426:5:25", + "src": "2516:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7753,565 +1625,51 @@ "visibility": "internal" } ], - "src": "7425:12:25" + "src": "2515:21:26" }, - "payable": false, "returnParameters": { - "id": 3463, + "id": 3336, "nodeType": "ParameterList", "parameters": [], - "src": "7447:0:25" + "src": "2545:0:26" }, - "scope": 4000, - "src": "7397:162:25", + "scope": 3372, + "src": "2487:59:26", "stateMutability": "nonpayable", - "superFunction": 2986, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3504, - "nodeType": "Block", - "src": "7610:121:25", - "statements": [ - { - "assignments": [ - 3488 - ], - "declarations": [ - { - "constant": false, - "id": 3488, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7614:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3487, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7614:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3490, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3484, - "src": "7644:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3489, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "7630:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7630:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7614:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3493, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "7653:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3495, - "indexExpression": { - "argumentTypes": null, - "id": 3494, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7671:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7653:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3496, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7681:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7681:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7653:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3499, - "nodeType": "ExpressionStatement", - "src": "7653:43:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3501, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7718:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3500, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "7700:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7700:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "7700:25:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3505, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3484, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7589:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3483, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7589:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7588:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3486, - "nodeType": "ParameterList", - "parameters": [], - "src": "7610:0:25" - }, - "scope": 4000, - "src": "7562:169:25", - "stateMutability": "nonpayable", - "superFunction": 2941, - "visibility": "external" - }, - { - "body": { - "id": 3529, - "nodeType": "Block", - "src": "7811:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3512, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7815:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3514, - "indexExpression": { - "argumentTypes": null, - "id": 3513, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7833:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7815:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3515, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7841:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7841:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7815:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3518, - "nodeType": "ExpressionStatement", - "src": "7815:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3519, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7860:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3521, - "indexExpression": { - "argumentTypes": null, - "id": 3520, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7882:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7860:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3522, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3509, - "src": "7890:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "7860:37:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3524, - "nodeType": "ExpressionStatement", - "src": "7860:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3526, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7919:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3525, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7901:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7901:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3528, - "nodeType": "ExpressionStatement", - "src": "7901:23:25" - } - ] - }, - "documentation": null, - "id": 3530, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3344, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataRevertWithMessage", "nodeType": "FunctionDefinition", "parameters": { - "id": 3510, + "id": 3342, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3507, - "name": "call", + "id": 3339, + "name": "data", "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7774:10:25", + "scope": 3344, + "src": "2588:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3506, + "id": 3338, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7774:5:25", + "src": "2588:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8322,22 +1680,22 @@ }, { "constant": false, - "id": 3509, + "id": 3341, "name": "message", "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7786:14:25", + "scope": 3344, + "src": "2609:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string" }, "typeName": { - "id": 3508, + "id": 3340, "name": "string", "nodeType": "ElementaryTypeName", - "src": "7786:6:25", + "src": "2609:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -8347,71 +1705,2284 @@ "visibility": "internal" } ], - "src": "7773:28:25" + "src": "2587:46:26" }, - "payable": false, "returnParameters": { - "id": 3511, + "id": 3343, "nodeType": "ParameterList", "parameters": [], - "src": "7811:0:25" + "src": "2642:0:26" }, - "scope": 4000, - "src": "7734:194:25", + "scope": 3372, + "src": "2548:95:26", "stateMutability": "nonpayable", - "superFunction": 2993, + "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": 3560, + "id": 3457, "nodeType": "Block", - "src": "8006:165:25", + "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": [ - 3538 + 3464 ], "declarations": [ { "constant": false, - "id": 3538, - "name": "method", + "id": 3464, + "name": "callHash", "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "8010:13:25", + "scope": 3491, + "src": "4780:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 3537, - "name": "bytes4", + "id": 3463, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8010:6:25", + "src": "4780:7:26", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], - "id": 3542, + "id": 3468, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3540, + "id": 3466, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3532, - "src": "8040:4:25", + "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" @@ -8426,14 +3997,14 @@ } ], "id": 3539, - "name": "bytesToBytes4", + "name": "_givenAnyReturn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8026:13:25", + "referencedDeclaration": 3534, + "src": "5389:15:26", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" } }, "id": 3541, @@ -8444,60 +4015,644 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8026:19:25", + "src": "5389:25:26", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "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": "8010:35:25" + "src": "5477:28:26" }, { "expression": { "argumentTypes": null, - "id": 3548, + "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, - "baseExpression": { - "argumentTypes": null, - "id": 3543, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8049:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3545, - "indexExpression": { - "argumentTypes": null, - "id": 3544, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8067:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8049:25:25", + "id": 3590, + "name": "fallbackMockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3434, + "src": "5801:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -8507,18 +4662,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3546, + "id": 3591, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8077:8:25", + "referencedDeclaration": 3378, + "src": "5820:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3547, + "id": 3592, "isConstant": false, "isLValue": false, "isPure": true, @@ -8526,65 +4681,38 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8077:15:25", + "src": "5820:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "8049:43:25", + "src": "5801:34:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3549, + "id": 3594, "nodeType": "ExpressionStatement", - "src": "8049:43:25" + "src": "5801:34:26" }, { "expression": { "argumentTypes": null, - "id": 3554, + "id": 3597, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3550, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "8096:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3552, - "indexExpression": { - "argumentTypes": null, - "id": 3551, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8119:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8096:30:25", + "id": 3595, + "name": "fallbackRevertMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3438, + "src": "5839:21:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -8594,139 +4722,204 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3553, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "8129:7:25", + "hexValue": "", + "id": 3596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5863:2:26", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" }, - "src": "8096:40:25", + "src": "5839:26:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3555, + "id": 3598, "nodeType": "ExpressionStatement", - "src": "8096:40:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3557, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8158:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3556, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8140:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8140:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3559, - "nodeType": "ExpressionStatement", - "src": "8140:25:25" + "src": "5839:26:26" } ] }, "documentation": null, - "id": 3561, + "id": 3600, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "givenMethodRevertWithMessage", + "name": "givenAnyRevert", "nodeType": "FunctionDefinition", "parameters": { - "id": 3535, + "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": 3532, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7969:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3531, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7969:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3534, + "id": 3602, "name": "message", "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7981:14:25", + "scope": 3615, + "src": "5907:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string" }, "typeName": { - "id": 3533, + "id": 3601, "name": "string", "nodeType": "ElementaryTypeName", - "src": "7981:6:25", + "src": "5907:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -8736,72 +4929,44 @@ "visibility": "internal" } ], - "src": "7968:28:25" + "src": "5906:25:26" }, - "payable": false, "returnParameters": { - "id": 3536, + "id": 3604, "nodeType": "ParameterList", "parameters": [], - "src": "8006:0:25" + "src": "5941:0:26" }, - "scope": 4000, - "src": "7931:240:25", + "scope": 4351, + "src": "5872:146:26", "stateMutability": "nonpayable", - "superFunction": 2948, + "superFunction": 3256, "visibility": "external" }, { "body": { - "id": 3577, + "id": 3623, "nodeType": "Block", - "src": "8229:78:25", + "src": "6061:44:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3571, + "id": 3621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3566, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "8233:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3568, - "indexExpression": { - "argumentTypes": null, - "id": 3567, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8251:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8233:23:25", + "id": 3618, + "name": "fallbackMockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3434, + "src": "6065:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -8811,18 +4976,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3569, + "id": 3619, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8259:8:25", + "referencedDeclaration": 3378, + "src": "6084:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3570, + "id": 3620, "isConstant": false, "isLValue": false, "isPure": true, @@ -8830,21 +4995,216 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8259:17:25", + "src": "6084:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "8233:43:25", + "src": "6065:36:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3572, + "id": 3622, "nodeType": "ExpressionStatement", - "src": "8233:43:25" + "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": { @@ -8852,37 +5212,37 @@ "arguments": [ { "argumentTypes": null, - "id": 3574, + "id": 3645, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8298:4:25", + "referencedDeclaration": 3626, + "src": "6297:4:26", "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" + "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": 3573, + "id": 3644, "name": "trackCalldataMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "8280:17:25", + "referencedDeclaration": 3492, + "src": "6279:17:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 3575, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -8890,48 +5250,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8280:23:25", + "src": "6279:23:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3576, + "id": 3647, "nodeType": "ExpressionStatement", - "src": "8280:23:25" + "src": "6279:23:26" } ] }, "documentation": null, - "id": 3578, + "id": 3649, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "givenCalldataRunOutOfGas", + "name": "_givenCalldataReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 3564, + "id": 3629, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3563, + "id": 3626, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "8208:10:25", + "scope": 3649, + "src": "6138:17:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", + "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3562, + "id": 3625, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8208:5:25", + "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" @@ -8941,71 +5326,51 @@ "visibility": "internal" } ], - "src": "8207:12:25" + "src": "6137:42:26" }, - "payable": false, "returnParameters": { - "id": 3565, + "id": 3630, "nodeType": "ParameterList", "parameters": [], - "src": "8229:0:25" + "src": "6189:0:26" }, - "scope": 4000, - "src": "8174:133:25", + "scope": 4351, + "src": "6108:198:26", "stateMutability": "nonpayable", - "superFunction": 2998, - "visibility": "external" + "superFunction": null, + "visibility": "private" }, { "body": { - "id": 3600, + "id": 3661, "nodeType": "Block", - "src": "8363:122:25", + "src": "6394:44:26", "statements": [ { - "assignments": [ - 3584 - ], - "declarations": [ - { - "constant": false, - "id": 3584, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8367:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3583, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8367:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3588, - "initialValue": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3586, + "id": 3657, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3580, - "src": "8397:4:25", + "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" @@ -9014,23 +5379,27 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } ], - "id": 3585, - "name": "bytesToBytes4", + "id": 3656, + "name": "_givenCalldataReturn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8383:13:25", + "referencedDeclaration": 3649, + "src": "6398:20:26", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory,bytes memory)" } }, - "id": 3587, + "id": 3659, "isConstant": false, "isLValue": false, "isPure": false, @@ -9038,19 +5407,870 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8383:19:25", + "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": "8367:35:25" + "src": "6974:35:26" }, { "expression": { "argumentTypes": null, - "id": 3594, + "id": 3732, "isConstant": false, "isLValue": false, "isPure": false, @@ -9059,26 +6279,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3589, + "id": 3727, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8406:17:25", + "referencedDeclaration": 3420, + "src": "7013:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3591, + "id": 3729, "indexExpression": { "argumentTypes": null, - "id": 3590, + "id": 3728, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8424:6:25", + "referencedDeclaration": 3722, + "src": "7031:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -9089,9 +6309,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8406:25:25", + "src": "7013:25:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -9101,40 +6321,113 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3592, + "id": 3730, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8434:8:25", + "referencedDeclaration": 3378, + "src": "7041:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3593, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberName": "OutOfGas", + "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8434:17:25", + "src": "7041:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "8406:45:25", + "src": "7013:43:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3595, + "id": 3733, "nodeType": "ExpressionStatement", - "src": "8406:45:25" + "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": { @@ -9142,12 +6435,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3597, + "id": 3741, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8473:6:25", + "referencedDeclaration": 3722, + "src": "7121:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -9161,18 +6454,18 @@ "typeString": "bytes4" } ], - "id": 3596, + "id": 3740, "name": "trackMethodIdMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8455:17:25", + "referencedDeclaration": 3519, + "src": "7103:17:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, - "id": 3598, + "id": 3742, "isConstant": false, "isLValue": false, "isPure": false, @@ -9180,48 +6473,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8455:25:25", + "src": "7103:25:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3599, + "id": 3743, "nodeType": "ExpressionStatement", - "src": "8455:25:25" + "src": "7103:25:26" } ] }, "documentation": null, - "id": 3601, + "id": 3745, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "givenMethodRunOutOfGas", + "name": "_givenMethodReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 3581, + "id": 3719, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3580, + "id": 3716, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8342:10:25", + "scope": 3745, + "src": "6920:17:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", + "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3579, + "id": 3715, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8342:5:25", + "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" @@ -9231,74 +6549,628 @@ "visibility": "internal" } ], - "src": "8341:12:25" + "src": "6919:42:26" }, - "payable": false, "returnParameters": { - "id": 3582, + "id": 3720, "nodeType": "ParameterList", "parameters": [], - "src": "8363:0:25" + "src": "6970:0:26" }, - "scope": 4000, - "src": "8310:175:25", + "scope": 4351, + "src": "6892:242:26", "stateMutability": "nonpayable", - "superFunction": 2953, - "visibility": "external" + "superFunction": null, + "visibility": "private" }, { "body": { - "id": 3608, + "id": 3757, "nodeType": "Block", - "src": "8539:26:25", + "src": "7219:42:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3606, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "8550:11:25", + "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_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 3605, - "id": 3607, - "nodeType": "Return", - "src": "8543:18:25" + "id": 3756, + "nodeType": "ExpressionStatement", + "src": "7223:34:26" } ] }, "documentation": null, - "id": 3609, + "id": 3758, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "invocationCount", + "name": "givenMethodReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "8512:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3605, + "id": 3750, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3604, - "name": "", + "id": 3747, + "name": "call", "nodeType": "VariableDeclaration", - "scope": 3609, - "src": "8533:4:25", + "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": { @@ -9306,10 +7178,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3603, + "id": 3783, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8533:4:25", + "src": "7478:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9319,32 +7191,513 @@ "visibility": "internal" } ], - "src": "8532:6:25" + "src": "7456:36:26" }, - "scope": 4000, - "src": "8488:77:25", + "returnParameters": { + "id": 3786, + "nodeType": "ParameterList", + "parameters": [], + "src": "7502:0:26" + }, + "scope": 4351, + "src": "7426:131:26", "stateMutability": "nonpayable", - "superFunction": 3003, + "superFunction": 3280, "visibility": "external" }, { "body": { - "id": 3632, + "id": 3809, "nodeType": "Block", - "src": "8638:122:25", + "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": [ - 3617 + 3839 ], "declarations": [ { "constant": false, - "id": 3617, + "id": 3839, "name": "method", "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8642:13:25", + "scope": 3855, + "src": "7938:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9352,10 +7705,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3616, + "id": 3838, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "8642:6:25", + "src": "7938:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -9365,18 +7718,18 @@ "visibility": "internal" } ], - "id": 3621, + "id": 3843, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3619, + "id": 3841, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "8672:4:25", + "referencedDeclaration": 3835, + "src": "7968:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -9390,18 +7743,18 @@ "typeString": "bytes calldata" } ], - "id": 3618, + "id": 3840, "name": "bytesToBytes4", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8658:13:25", + "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": 3620, + "id": 3842, "isConstant": false, "isLValue": false, "isPure": false, @@ -9409,32 +7762,1579 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8658:19:25", + "src": "7954:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", - "src": "8642:35:25" + "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": 3622, + "id": 3973, "name": "methodIdInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "8688:19:25", + "referencedDeclaration": 3432, + "src": "9075:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3630, + "id": 3981, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -9443,12 +9343,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3626, + "id": 3977, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8735:10:25", + "referencedDeclaration": 3442, + "src": "9122:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9456,12 +9356,12 @@ }, { "argumentTypes": null, - "id": 3627, + "id": 3978, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3617, - "src": "8747:6:25", + "referencedDeclaration": 3968, + "src": "9134:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -9481,18 +9381,18 @@ ], "expression": { "argumentTypes": null, - "id": 3624, + "id": 3975, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8718:3:25", + "referencedDeclaration": 4353, + "src": "9105:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3625, + "id": 3976, "isConstant": false, "isLValue": false, "isPure": true, @@ -9500,13 +9400,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8718:16:25", + "src": "9105:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3628, + "id": 3979, "isConstant": false, "isLValue": false, "isPure": false, @@ -9514,7 +9414,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8718:36:25", + "src": "9105:36:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -9528,18 +9428,18 @@ "typeString": "bytes memory" } ], - "id": 3623, + "id": 3974, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8708:9:25", + "referencedDeclaration": 4360, + "src": "9095:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3629, + "id": 3980, "isConstant": false, "isLValue": false, "isPure": false, @@ -9547,7 +9447,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8708:47:25", + "src": "9095:47:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9558,49 +9458,48 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8688:68:25", + "src": "9075:68:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3615, - "id": 3631, + "functionReturnParameters": 3966, + "id": 3982, "nodeType": "Return", - "src": "8681:75:25" + "src": "9068:75:26" } ] }, "documentation": null, - "id": 3633, + "id": 3984, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "invocationCountForMethod", "nodeType": "FunctionDefinition", "parameters": { - "id": 3612, + "id": 3963, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3611, + "id": 3962, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8602:10:25", + "scope": 3984, + "src": "8980:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3610, + "id": 3961, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8602:5:25", + "src": "8980:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9610,20 +9509,19 @@ "visibility": "internal" } ], - "src": "8601:12:25" + "src": "8979:21:26" }, - "payable": false, "returnParameters": { - "id": 3615, + "id": 3966, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3614, + "id": 3965, "name": "", "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8632:4:25", + "scope": 3984, + "src": "9019:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9631,10 +9529,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3613, + "id": 3964, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8632:4:25", + "src": "9019:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9644,37 +9542,37 @@ "visibility": "internal" } ], - "src": "8631:6:25" + "src": "9018:6:26" }, - "scope": 4000, - "src": "8568:192:25", + "scope": 4351, + "src": "8946:201:26", "stateMutability": "nonpayable", - "superFunction": 3010, + "superFunction": 3361, "visibility": "external" }, { "body": { - "id": 3650, + "id": 4001, "nodeType": "Block", - "src": "8835:81:25", + "src": "9231:81:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3640, + "id": 3991, "name": "calldataInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "8846:19:25", + "referencedDeclaration": 3412, + "src": "9242:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3648, + "id": 3999, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -9683,12 +9581,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3644, + "id": 3995, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8893:10:25", + "referencedDeclaration": 3442, + "src": "9289:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9696,12 +9594,12 @@ }, { "argumentTypes": null, - "id": 3645, + "id": 3996, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3635, - "src": "8905:4:25", + "referencedDeclaration": 3986, + "src": "9301:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -9721,18 +9619,18 @@ ], "expression": { "argumentTypes": null, - "id": 3642, + "id": 3993, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8876:3:25", + "referencedDeclaration": 4353, + "src": "9272:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3643, + "id": 3994, "isConstant": false, "isLValue": false, "isPure": true, @@ -9740,13 +9638,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8876:16:25", + "src": "9272:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3646, + "id": 3997, "isConstant": false, "isLValue": false, "isPure": false, @@ -9754,7 +9652,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8876:34:25", + "src": "9272:34:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -9768,18 +9666,18 @@ "typeString": "bytes memory" } ], - "id": 3641, + "id": 3992, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8866:9:25", + "referencedDeclaration": 4360, + "src": "9262:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3647, + "id": 3998, "isConstant": false, "isLValue": false, "isPure": false, @@ -9787,7 +9685,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8866:45:25", + "src": "9262:45:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9798,49 +9696,48 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8846:66:25", + "src": "9242:66:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3639, - "id": 3649, + "functionReturnParameters": 3990, + "id": 4000, "nodeType": "Return", - "src": "8839:73:25" + "src": "9235:73:26" } ] }, "documentation": null, - "id": 3651, + "id": 4002, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "invocationCountForCalldata", "nodeType": "FunctionDefinition", "parameters": { - "id": 3636, + "id": 3987, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3635, + "id": 3986, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8799:10:25", + "scope": 4002, + "src": "9186:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3634, + "id": 3985, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8799:5:25", + "src": "9186:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9850,20 +9747,19 @@ "visibility": "internal" } ], - "src": "8798:12:25" + "src": "9185:21:26" }, - "payable": false, "returnParameters": { - "id": 3639, + "id": 3990, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3638, + "id": 3989, "name": "", "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8829:4:25", + "scope": 4002, + "src": "9225:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9871,10 +9767,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3637, + "id": 3988, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8829:4:25", + "src": "9225:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9884,32 +9780,32 @@ "visibility": "internal" } ], - "src": "8828:6:25" + "src": "9224:6:26" }, - "scope": 4000, - "src": "8763:153:25", + "scope": 4351, + "src": "9150:162:26", "stateMutability": "nonpayable", - "superFunction": 3017, + "superFunction": 3368, "visibility": "external" }, { "body": { - "id": 3783, + "id": 4134, "nodeType": "Block", - "src": "8945:1265:25", + "src": "9341:1265:26", "statements": [ { "assignments": [ - 3655 + 4006 ], "declarations": [ { "constant": false, - "id": 3655, + "id": 4006, "name": "nextMock", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "8984:21:25", + "scope": 4134, + "src": "9380:21:26", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -9917,10 +9813,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3654, + "id": 4005, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8984:5:25", + "src": "9380:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9930,31 +9826,31 @@ "visibility": "internal" } ], - "id": 3659, + "id": 4010, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3656, + "id": 4007, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9008:13:25", + "referencedDeclaration": 3396, + "src": "9404:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3658, + "id": 4009, "indexExpression": { "argumentTypes": null, - "id": 3657, + "id": 4008, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9022:16:25", + "referencedDeclaration": 3381, + "src": "9418:16:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9965,27 +9861,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9008:31:25", + "src": "9404:31:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "8984:55:25" + "src": "9380:55:26" }, { "assignments": [ - 3661 + 4012 ], "declarations": [ { "constant": false, - "id": 3661, + "id": 4012, "name": "mockHash", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9043:16:25", + "scope": 4134, + "src": "9439:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9993,10 +9889,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3660, + "id": 4011, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9043:7:25", + "src": "9439:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10006,18 +9902,18 @@ "visibility": "internal" } ], - "id": 3665, + "id": 4016, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3663, + "id": 4014, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9072:8:25", + "referencedDeclaration": 4006, + "src": "9468:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -10031,18 +9927,18 @@ "typeString": "bytes memory" } ], - "id": 3662, + "id": 4013, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9062:9:25", + "referencedDeclaration": 4360, + "src": "9458:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3664, + "id": 4015, "isConstant": false, "isLValue": false, "isPure": false, @@ -10050,25 +9946,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9062:19:25", + "src": "9458:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "9043:38:25" + "src": "9439:38:26" }, { "body": { - "id": 3706, + "id": 4057, "nodeType": "Block", - "src": "9153:355:25", + "src": "9549:355:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3674, + "id": 4025, "isConstant": false, "isLValue": false, "isPure": false, @@ -10077,26 +9973,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3669, + "id": 4020, "name": "calldataMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "9184:17:25", + "referencedDeclaration": 3400, + "src": "9580:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, - "id": 3671, + "id": 4022, "indexExpression": { "argumentTypes": null, - "id": 3670, + "id": 4021, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9202:8:25", + "referencedDeclaration": 4006, + "src": "9598:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -10107,9 +10003,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9184:27:25", + "src": "9580:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -10119,18 +10015,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3672, + "id": 4023, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9214:8:25", + "referencedDeclaration": 3378, + "src": "9610:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3673, + "id": 4024, "isConstant": false, "isLValue": false, "isPure": true, @@ -10138,26 +10034,26 @@ "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9214:15:25", + "src": "9610:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "9184:45:25", + "src": "9580:45:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3675, + "id": 4026, "nodeType": "ExpressionStatement", - "src": "9184:45:25" + "src": "9580:45:26" }, { "expression": { "argumentTypes": null, - "id": 3680, + "id": 4031, "isConstant": false, "isLValue": false, "isPure": false, @@ -10166,26 +10062,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3676, + "id": 4027, "name": "calldataExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "9234:20:25", + "referencedDeclaration": 3404, + "src": "9630:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes memory => bytes storage ref)" } }, - "id": 3678, + "id": 4029, "indexExpression": { "argumentTypes": null, - "id": 3677, + "id": 4028, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9255:8:25", + "referencedDeclaration": 4006, + "src": "9651:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -10196,7 +10092,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9234:30:25", + "src": "9630:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -10207,14 +10103,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3679, + "id": 4030, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9267:5:25", + "src": "9663:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -10222,20 +10118,20 @@ }, "value": "" }, - "src": "9234:38:25", + "src": "9630:38:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3681, + "id": 4032, "nodeType": "ExpressionStatement", - "src": "9234:38:25" + "src": "9630:38:26" }, { "expression": { "argumentTypes": null, - "id": 3686, + "id": 4037, "isConstant": false, "isLValue": false, "isPure": false, @@ -10244,26 +10140,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3682, + "id": 4033, "name": "calldataRevertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "9277:21:25", + "referencedDeclaration": 3408, + "src": "9673:21:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, - "id": 3684, + "id": 4035, "indexExpression": { "argumentTypes": null, - "id": 3683, + "id": 4034, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9299:8:25", + "referencedDeclaration": 4006, + "src": "9695:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -10274,7 +10170,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9277:31:25", + "src": "9673:31:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -10285,14 +10181,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3685, + "id": 4036, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9311:2:25", + "src": "9707:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -10300,32 +10196,32 @@ }, "value": "" }, - "src": "9277:36:25", + "src": "9673:36:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3687, + "id": 4038, "nodeType": "ExpressionStatement", - "src": "9277:36:25" + "src": "9673:36:26" }, { "expression": { "argumentTypes": null, - "id": 3692, + "id": 4043, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3688, + "id": 4039, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9348:8:25", + "referencedDeclaration": 4006, + "src": "9744:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -10337,26 +10233,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3689, + "id": 4040, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9359:13:25", + "referencedDeclaration": 3396, + "src": "9755:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3691, + "id": 4042, "indexExpression": { "argumentTypes": null, - "id": 3690, + "id": 4041, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9373:8:25", + "referencedDeclaration": 4012, + "src": "9769:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10367,26 +10263,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9359:23:25", + "src": "9755:23:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "src": "9348:34:25", + "src": "9744:34:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3693, + "id": 4044, "nodeType": "ExpressionStatement", - "src": "9348:34:25" + "src": "9744:34:26" }, { "expression": { "argumentTypes": null, - "id": 3698, + "id": 4049, "isConstant": false, "isLValue": false, "isPure": false, @@ -10395,26 +10291,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3694, + "id": 4045, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9417:13:25", + "referencedDeclaration": 3396, + "src": "9813:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3696, + "id": 4047, "indexExpression": { "argumentTypes": null, - "id": 3695, + "id": 4046, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9431:8:25", + "referencedDeclaration": 4012, + "src": "9827:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10425,7 +10321,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9417:23:25", + "src": "9813:23:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -10436,14 +10332,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3697, + "id": 4048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9443:2:25", + "src": "9839:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -10451,32 +10347,32 @@ }, "value": "" }, - "src": "9417:28:25", + "src": "9813:28:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3699, + "id": 4050, "nodeType": "ExpressionStatement", - "src": "9417:28:25" + "src": "9813:28:26" }, { "expression": { "argumentTypes": null, - "id": 3704, + "id": 4055, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3700, + "id": 4051, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9473:8:25", + "referencedDeclaration": 4012, + "src": "9869:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10489,12 +10385,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3702, + "id": 4053, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9494:8:25", + "referencedDeclaration": 4006, + "src": "9890:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -10508,18 +10404,18 @@ "typeString": "bytes memory" } ], - "id": 3701, + "id": 4052, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9484:9:25", + "referencedDeclaration": 4360, + "src": "9880:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3703, + "id": 4054, "isConstant": false, "isLValue": false, "isPure": false, @@ -10527,21 +10423,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9484:19:25", + "src": "9880:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "9473:30:25", + "src": "9869:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 3705, + "id": 4056, "nodeType": "ExpressionStatement", - "src": "9473:30:25" + "src": "9869:30:26" } ] }, @@ -10551,19 +10447,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 3668, + "id": 4019, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3666, + "id": 4017, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9120:8:25", + "referencedDeclaration": 4012, + "src": "9516:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10573,31 +10469,31 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 3667, + "id": 4018, "name": "MOCKS_LIST_END_HASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "9132:19:25", + "referencedDeclaration": 3389, + "src": "9528:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "9120:31:25", + "src": "9516:31:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3707, + "id": 4058, "nodeType": "WhileStatement", - "src": "9114:394:25" + "src": "9510:394:26" }, { "expression": { "argumentTypes": null, - "id": 3712, + "id": 4063, "isConstant": false, "isLValue": false, "isPure": false, @@ -10606,26 +10502,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3708, + "id": 4059, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9527:13:25", + "referencedDeclaration": 3396, + "src": "9923:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3710, + "id": 4061, "indexExpression": { "argumentTypes": null, - "id": 3709, + "id": 4060, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9541:16:25", + "referencedDeclaration": 3381, + "src": "9937:16:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10636,7 +10532,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9527:31:25", + "src": "9923:31:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -10646,39 +10542,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3711, + "id": 4062, "name": "MOCKS_LIST_END", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "9561:14:25", + "referencedDeclaration": 3384, + "src": "9957:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } }, - "src": "9527:48:25", + "src": "9923:48:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3713, + "id": 4064, "nodeType": "ExpressionStatement", - "src": "9527:48:25" + "src": "9923:48:26" }, { "assignments": [ - 3715 + 4066 ], "declarations": [ { "constant": false, - "id": 3715, + "id": 4066, "name": "nextAnyMock", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9613:18:25", + "scope": 4134, + "src": "10009:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10686,10 +10582,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3714, + "id": 4065, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "9613:6:25", + "src": "10009:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -10699,31 +10595,31 @@ "visibility": "internal" } ], - "id": 3719, + "id": 4070, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3716, + "id": 4067, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9634:13:25", + "referencedDeclaration": 3416, + "src": "10030:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3718, + "id": 4069, "indexExpression": { "argumentTypes": null, - "id": 3717, + "id": 4068, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9648:18:25", + "referencedDeclaration": 3392, + "src": "10044:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -10734,33 +10630,33 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9634:33:25", + "src": "10030:33:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", - "src": "9613:54:25" + "src": "10009:54:26" }, { "body": { - "id": 3758, + "id": 4109, "nodeType": "Block", - "src": "9712:316:25", + "src": "10108:316:26", "statements": [ { "assignments": [ - 3724 + 4075 ], "declarations": [ { "constant": false, - "id": 3724, + "id": 4075, "name": "currentAnyMock", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9717:21:25", + "scope": 4109, + "src": "10113:21:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10768,10 +10664,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3723, + "id": 4074, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "9717:6:25", + "src": "10113:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -10781,27 +10677,27 @@ "visibility": "internal" } ], - "id": 3726, + "id": 4077, "initialValue": { "argumentTypes": null, - "id": 3725, + "id": 4076, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9741:11:25", + "referencedDeclaration": 4066, + "src": "10137:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", - "src": "9717:35:25" + "src": "10113:35:26" }, { "expression": { "argumentTypes": null, - "id": 3732, + "id": 4083, "isConstant": false, "isLValue": false, "isPure": false, @@ -10810,26 +10706,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3727, + "id": 4078, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "9757:17:25", + "referencedDeclaration": 3420, + "src": "10153:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3729, + "id": 4080, "indexExpression": { "argumentTypes": null, - "id": 3728, + "id": 4079, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9775:14:25", + "referencedDeclaration": 4075, + "src": "10171:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -10840,9 +10736,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9757:33:25", + "src": "10153:33:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -10852,18 +10748,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3730, + "id": 4081, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9793:8:25", + "referencedDeclaration": 3378, + "src": "10189:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3731, + "id": 4082, "isConstant": false, "isLValue": false, "isPure": true, @@ -10871,26 +10767,26 @@ "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9793:15:25", + "src": "10189:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "9757:51:25", + "src": "10153:51:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3733, + "id": 4084, "nodeType": "ExpressionStatement", - "src": "9757:51:25" + "src": "10153:51:26" }, { "expression": { "argumentTypes": null, - "id": 3738, + "id": 4089, "isConstant": false, "isLValue": false, "isPure": false, @@ -10899,26 +10795,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3734, + "id": 4085, "name": "methodIdExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "9813:20:25", + "referencedDeclaration": 3424, + "src": "10209:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes storage ref)" } }, - "id": 3736, + "id": 4087, "indexExpression": { "argumentTypes": null, - "id": 3735, + "id": 4086, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9834:14:25", + "referencedDeclaration": 4075, + "src": "10230:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -10929,7 +10825,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9813:36:25", + "src": "10209:36:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -10940,14 +10836,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3737, + "id": 4088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9852:5:25", + "src": "10248:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -10955,20 +10851,20 @@ }, "value": "" }, - "src": "9813:44:25", + "src": "10209:44:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3739, + "id": 4090, "nodeType": "ExpressionStatement", - "src": "9813:44:25" + "src": "10209:44:26" }, { "expression": { "argumentTypes": null, - "id": 3744, + "id": 4095, "isConstant": false, "isLValue": false, "isPure": false, @@ -10977,26 +10873,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3740, + "id": 4091, "name": "methodIdRevertMessages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "9862:22:25", + "referencedDeclaration": 3428, + "src": "10258:22:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string storage ref)" } }, - "id": 3742, + "id": 4093, "indexExpression": { "argumentTypes": null, - "id": 3741, + "id": 4092, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9885:14:25", + "referencedDeclaration": 4075, + "src": "10281:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11007,7 +10903,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9862:38:25", + "src": "10258:38:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -11018,14 +10914,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3743, + "id": 4094, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9903:2:25", + "src": "10299:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -11033,32 +10929,32 @@ }, "value": "" }, - "src": "9862:43:25", + "src": "10258:43:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3745, + "id": 4096, "nodeType": "ExpressionStatement", - "src": "9862:43:25" + "src": "10258:43:26" }, { "expression": { "argumentTypes": null, - "id": 3750, + "id": 4101, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3746, + "id": 4097, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9910:11:25", + "referencedDeclaration": 4066, + "src": "10306:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11070,26 +10966,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3747, + "id": 4098, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9924:13:25", + "referencedDeclaration": 3416, + "src": "10320:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3749, + "id": 4100, "indexExpression": { "argumentTypes": null, - "id": 3748, + "id": 4099, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9938:14:25", + "referencedDeclaration": 4075, + "src": "10334:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11100,26 +10996,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9924:29:25", + "src": "10320:29:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "9910:43:25", + "src": "10306:43:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3751, + "id": 4102, "nodeType": "ExpressionStatement", - "src": "9910:43:25" + "src": "10306:43:26" }, { "expression": { "argumentTypes": null, - "id": 3756, + "id": 4107, "isConstant": false, "isLValue": false, "isPure": false, @@ -11128,26 +11024,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3752, + "id": 4103, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9988:13:25", + "referencedDeclaration": 3416, + "src": "10384:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3754, + "id": 4105, "indexExpression": { "argumentTypes": null, - "id": 3753, + "id": 4104, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "10002:14:25", + "referencedDeclaration": 4075, + "src": "10398:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11158,7 +11054,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9988:29:25", + "src": "10384:29:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11169,14 +11065,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "307830", - "id": 3755, + "id": 4106, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10020:3:25", + "src": "10416:3:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11184,15 +11080,15 @@ }, "value": "0x0" }, - "src": "9988:35:25", + "src": "10384:35:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3757, + "id": 4108, "nodeType": "ExpressionStatement", - "src": "9988:35:25" + "src": "10384:35:26" } ] }, @@ -11202,19 +11098,19 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 3722, + "id": 4073, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3720, + "id": 4071, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9677:11:25", + "referencedDeclaration": 4066, + "src": "10073:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11224,31 +11120,31 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 3721, + "id": 4072, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9692:18:25", + "referencedDeclaration": 3392, + "src": "10088:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "9677:33:25", + "src": "10073:33:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3759, + "id": 4110, "nodeType": "WhileStatement", - "src": "9671:357:25" + "src": "10067:357:26" }, { "expression": { "argumentTypes": null, - "id": 3764, + "id": 4115, "isConstant": false, "isLValue": false, "isPure": false, @@ -11257,26 +11153,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3760, + "id": 4111, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "10047:13:25", + "referencedDeclaration": 3416, + "src": "10443:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3762, + "id": 4113, "indexExpression": { "argumentTypes": null, - "id": 3761, + "id": 4112, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10061:18:25", + "referencedDeclaration": 3392, + "src": "10457:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11287,7 +11183,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "10047:33:25", + "src": "10443:33:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11297,43 +11193,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3763, + "id": 4114, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10083:18:25", + "referencedDeclaration": 3392, + "src": "10479:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "10047:54:25", + "src": "10443:54:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3765, + "id": 4116, "nodeType": "ExpressionStatement", - "src": "10047:54:25" + "src": "10443:54:26" }, { "expression": { "argumentTypes": null, - "id": 3768, + "id": 4119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3766, + "id": 4117, "name": "fallbackExpectation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "10106:19:25", + "referencedDeclaration": 3436, + "src": "10502:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -11344,14 +11240,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3767, + "id": 4118, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10128:2:25", + "src": "10524:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -11359,34 +11255,34 @@ }, "value": "" }, - "src": "10106:24:25", + "src": "10502:24:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3769, + "id": 4120, "nodeType": "ExpressionStatement", - "src": "10106:24:25" + "src": "10502:24:26" }, { "expression": { "argumentTypes": null, - "id": 3773, + "id": 4124, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3770, + "id": 4121, "name": "fallbackMockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "10134:16:25", + "referencedDeclaration": 3434, + "src": "10530:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -11396,18 +11292,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3771, + "id": 4122, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "10153:8:25", + "referencedDeclaration": 3378, + "src": "10549:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3772, + "id": 4123, "isConstant": false, "isLValue": false, "isPure": true, @@ -11415,38 +11311,38 @@ "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10153:15:25", + "src": "10549:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "10134:34:25", + "src": "10530:34:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3774, + "id": 4125, "nodeType": "ExpressionStatement", - "src": "10134:34:25" + "src": "10530:34:26" }, { "expression": { "argumentTypes": null, - "id": 3777, + "id": 4128, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3775, + "id": 4126, "name": "invocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "10172:11:25", + "referencedDeclaration": 3440, + "src": "10568:11:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11457,14 +11353,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 3776, + "id": 4127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10186:1:25", + "src": "10582:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11472,32 +11368,32 @@ }, "value": "0" }, - "src": "10172:15:25", + "src": "10568:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3778, + "id": 4129, "nodeType": "ExpressionStatement", - "src": "10172:15:25" + "src": "10568:15:26" }, { "expression": { "argumentTypes": null, - "id": 3781, + "id": 4132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3779, + "id": 4130, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "10191:10:25", + "referencedDeclaration": 3442, + "src": "10587:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11508,14 +11404,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3780, + "id": 4131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10205:1:25", + "src": "10601:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -11523,67 +11419,67 @@ }, "value": "1" }, - "src": "10191:15:25", + "src": "10587:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3782, + "id": 4133, "nodeType": "ExpressionStatement", - "src": "10191:15:25" + "src": "10587:15:26" } ] }, "documentation": null, - "id": 3784, + "id": 4135, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "reset", "nodeType": "FunctionDefinition", "parameters": { - "id": 3652, + "id": 4003, "nodeType": "ParameterList", "parameters": [], - "src": "8933:2:25" + "src": "9329:2:26" }, - "payable": false, "returnParameters": { - "id": 3653, + "id": 4004, "nodeType": "ParameterList", "parameters": [], - "src": "8945:0:25" + "src": "9341:0:26" }, - "scope": 4000, - "src": "8919:1291:25", + "scope": 4351, + "src": "9315:1291:26", "stateMutability": "nonpayable", - "superFunction": 3020, + "superFunction": 3371, "visibility": "external" }, { "body": { - "id": 3794, + "id": 4145, "nodeType": "Block", - "src": "10242:157:25", + "src": "10638:157:26", "statements": [ { "body": { - "id": 3792, + "id": 4143, "nodeType": "Block", - "src": "10258:138:25", + "src": "10654:138:26", "statements": [ { - "assignments": [], + "assignments": [ + 4140 + ], "declarations": [ { "constant": false, - "id": 3789, + "id": 4140, "name": "s", "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "10263:6:25", + "scope": 4143, + "src": "10659:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11591,10 +11487,10 @@ "typeString": "bool" }, "typeName": { - "id": 3788, + "id": 4139, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "10263:4:25", + "src": "10659:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11604,41 +11500,41 @@ "visibility": "internal" } ], - "id": 3790, + "id": 4141, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "10263:6:25" + "src": "10659:6:26" }, { "externalReferences": [ { "s": { - "declaration": 3789, + "declaration": 4140, "isOffset": false, "isSlot": false, - "src": "10334:1:25", + "src": "10730:1:26", "valueSize": 1 } } ], - "id": 3791, + "id": 4142, "nodeType": "InlineAssembly", "operations": "{\n s := call(sub(gas(), 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n}", - "src": "10274:122:25" + "src": "10670:122:26" } ] }, "condition": { "argumentTypes": null, "hexValue": "74727565", - "id": 3787, + "id": 4138, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10252:4:25", + "src": "10648:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11646,55 +11542,55 @@ }, "value": "true" }, - "id": 3793, + "id": 4144, "nodeType": "WhileStatement", - "src": "10246:150:25" + "src": "10642:150:26" } ] }, "documentation": null, - "id": 3795, + "id": 4146, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "useAllGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 3785, + "id": 4136, "nodeType": "ParameterList", "parameters": [], - "src": "10231:2:25" + "src": "10627:2:26" }, - "payable": false, "returnParameters": { - "id": 3786, + "id": 4137, "nodeType": "ParameterList", "parameters": [], - "src": "10242:0:25" + "src": "10638:0:26" }, - "scope": 4000, - "src": "10213:186:25", + "scope": 4351, + "src": "10609:186:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3834, + "id": 4185, "nodeType": "Block", - "src": "10464:122:25", + "src": "10867:122:26", "statements": [ { - "assignments": [], + "assignments": [ + 4154 + ], "declarations": [ { "constant": false, - "id": 3803, + "id": 4154, "name": "out", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10470:10:25", + "scope": 4185, + "src": "10873:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11702,10 +11598,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3802, + "id": 4153, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "10470:6:25", + "src": "10873:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11715,33 +11611,33 @@ "visibility": "internal" } ], - "id": 3804, + "id": 4155, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "10470:10:25" + "src": "10873:10:26" }, { "body": { - "id": 3830, + "id": 4181, "nodeType": "Block", - "src": "10515:52:25", + "src": "10918:52:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3828, + "id": 4179, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3815, + "id": 4166, "name": "out", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10523:3:25", + "referencedDeclaration": 4154, + "src": "10926:3:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11755,7 +11651,7 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 3827, + "id": 4178, "isConstant": false, "isLValue": false, "isPure": false, @@ -11769,7 +11665,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 3821, + "id": 4172, "isConstant": false, "isLValue": false, "isPure": false, @@ -11778,26 +11674,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3817, + "id": 4168, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "10537:1:25", + "referencedDeclaration": 4148, + "src": "10940:1:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3819, + "id": 4170, "indexExpression": { "argumentTypes": null, - "id": 3818, + "id": 4169, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10539:1:25", + "referencedDeclaration": 4157, + "src": "10942:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11808,7 +11704,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10537:4:25", + "src": "10940:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -11819,14 +11715,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30784646", - "id": 3820, + "id": 4171, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10544:4:25", + "src": "10947:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", @@ -11834,7 +11730,7 @@ }, "value": "0xFF" }, - "src": "10537:11:25", + "src": "10940:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -11848,20 +11744,20 @@ "typeString": "bytes1" } ], - "id": 3816, + "id": 4167, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10530:6:25", + "src": "10933:6:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes4_$", "typeString": "type(bytes4)" }, "typeName": "bytes4" }, - "id": 3822, + "id": 4173, "isConstant": false, "isLValue": false, "isPure": false, @@ -11869,7 +11765,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10530:19:25", + "src": "10933:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11886,19 +11782,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3825, + "id": 4176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3823, + "id": 4174, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10554:1:25", + "referencedDeclaration": 4157, + "src": "10957:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11909,14 +11805,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "38", - "id": 3824, + "id": 4175, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10558:1:25", + "src": "10961:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", @@ -11924,41 +11820,41 @@ }, "value": "8" }, - "src": "10554:5:25", + "src": "10957:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3826, + "id": 4177, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10553:7:25", + "src": "10956:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10530:30:25", + "src": "10933:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "10523:37:25", + "src": "10926:37:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3829, + "id": 4180, "nodeType": "ExpressionStatement", - "src": "10523:37:25" + "src": "10926:37:26" } ] }, @@ -11968,19 +11864,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3811, + "id": 4162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3809, + "id": 4160, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10503:1:25", + "referencedDeclaration": 4157, + "src": "10906:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11991,14 +11887,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "34", - "id": 3810, + "id": 4161, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10507:1:25", + "src": "10910:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -12006,25 +11902,25 @@ }, "value": "4" }, - "src": "10503:5:25", + "src": "10906:5:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3831, + "id": 4182, "initializationExpression": { "assignments": [ - 3806 + 4157 ], "declarations": [ { "constant": false, - "id": 3806, + "id": 4157, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10491:6:25", + "scope": 4182, + "src": "10894:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12032,10 +11928,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3805, + "id": 4156, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10491:4:25", + "src": "10894:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12045,18 +11941,18 @@ "visibility": "internal" } ], - "id": 3808, + "id": 4159, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 3807, + "id": 4158, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10500:1:25", + "src": "10903:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12065,12 +11961,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "10491:10:25" + "src": "10894:10:26" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 3813, + "id": 4164, "isConstant": false, "isLValue": false, "isPure": false, @@ -12078,15 +11974,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "10510:3:25", + "src": "10913:3:26", "subExpression": { "argumentTypes": null, - "id": 3812, + "id": 4163, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10510:1:25", + "referencedDeclaration": 4157, + "src": "10913:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12097,64 +11993,63 @@ "typeString": "uint256" } }, - "id": 3814, + "id": 4165, "nodeType": "ExpressionStatement", - "src": "10510:3:25" + "src": "10913:3:26" }, "nodeType": "ForStatement", - "src": "10486:81:25" + "src": "10889:81:26" }, { "expression": { "argumentTypes": null, - "id": 3832, + "id": 4183, "name": "out", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10579:3:25", + "referencedDeclaration": 4154, + "src": "10982:3:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "functionReturnParameters": 3801, - "id": 3833, + "functionReturnParameters": 4152, + "id": 4184, "nodeType": "Return", - "src": "10572:10:25" + "src": "10975:10:26" } ] }, "documentation": null, - "id": 3835, + "id": 4186, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "bytesToBytes4", "nodeType": "FunctionDefinition", "parameters": { - "id": 3798, + "id": 4149, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3797, + "id": 4148, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10425:7:25", + "scope": 4186, + "src": "10821:14:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3796, + "id": 4147, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10425:5:25", + "src": "10821:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -12164,20 +12059,19 @@ "visibility": "internal" } ], - "src": "10424:9:25" + "src": "10820:16:26" }, - "payable": false, "returnParameters": { - "id": 3801, + "id": 4152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3800, + "id": 4151, "name": "", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10456:6:25", + "scope": 4186, + "src": "10859:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12185,10 +12079,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3799, + "id": 4150, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "10456:6:25", + "src": "10859:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -12198,67 +12092,66 @@ "visibility": "internal" } ], - "src": "10455:8:25" + "src": "10858:8:26" }, - "scope": 4000, - "src": "10402:184:25", + "scope": 4351, + "src": "10798:191:26", "stateMutability": "pure", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3843, + "id": 4194, "nodeType": "Block", - "src": "10654:189:25", + "src": "11064:189:26", "statements": [ { "externalReferences": [ { "b": { - "declaration": 3840, + "declaration": 4191, "isOffset": false, "isSlot": false, - "src": "10827:1:25", + "src": "11237:1:26", "valueSize": 1 } }, { "a": { - "declaration": 3837, + "declaration": 4188, "isOffset": false, "isSlot": false, - "src": "10780:1:25", + "src": "11190:1:26", "valueSize": 1 } } ], - "id": 3842, + "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": "10661:182:25" + "src": "11071:182:26" } ] }, "documentation": null, - "id": 3844, + "id": 4195, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "addressToBytes", "nodeType": "FunctionDefinition", "parameters": { - "id": 3838, + "id": 4189, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3837, + "id": 4188, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10613:9:25", + "scope": 4195, + "src": "11016:9:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12266,10 +12159,11 @@ "typeString": "address" }, "typeName": { - "id": 3836, + "id": 4187, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10613:7:25", + "src": "11016:7:26", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12279,31 +12173,30 @@ "visibility": "internal" } ], - "src": "10612:11:25" + "src": "11015:11:26" }, - "payable": false, "returnParameters": { - "id": 3841, + "id": 4192, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3840, + "id": 4191, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10646:7:25", + "scope": 4195, + "src": "11049:14:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3839, + "id": 4190, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10646:5:25", + "src": "11049:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -12313,36 +12206,36 @@ "visibility": "internal" } ], - "src": "10645:9:25" + "src": "11048:16:26" }, - "scope": 4000, - "src": "10589:254:25", + "scope": 4351, + "src": "10992:261:26", "stateMutability": "pure", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3859, + "id": 4210, "nodeType": "Block", - "src": "10909:68:25", + "src": "11326:68:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3856, + "id": 4207, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3851, + "id": 4202, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3849, - "src": "10916:1:25", + "referencedDeclaration": 4200, + "src": "11333:1:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -12356,14 +12249,14 @@ { "argumentTypes": null, "hexValue": "3332", - "id": 3854, + "id": 4205, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10930:2:25", + "src": "11347:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -12379,29 +12272,29 @@ "typeString": "int_const 32" } ], - "id": 3853, + "id": 4204, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "10920:9:25", + "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": 3852, + "id": 4203, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10924:5:25", + "src": "11341:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, - "id": 3855, + "id": 4206, "isConstant": false, "isLValue": false, "isPure": true, @@ -12409,69 +12302,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10920:13:25", + "src": "11337:13:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } }, - "src": "10916:17:25", + "src": "11333:17:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3857, + "id": 4208, "nodeType": "ExpressionStatement", - "src": "10916:17:25" + "src": "11333:17:26" }, { "externalReferences": [ { "x": { - "declaration": 3846, + "declaration": 4197, "isOffset": false, "isSlot": false, - "src": "10970:1:25", + "src": "11387:1:26", "valueSize": 1 } }, { "b": { - "declaration": 3849, + "declaration": 4200, "isOffset": false, "isSlot": false, - "src": "10962:1:25", + "src": "11379:1:26", "valueSize": 1 } } ], - "id": 3858, + "id": 4209, "nodeType": "InlineAssembly", "operations": "{\n mstore(add(b, 32), x)\n}", - "src": "10940:37:25" + "src": "11357:37:26" } ] }, "documentation": null, - "id": 3860, + "id": 4211, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "uintToBytes", "nodeType": "FunctionDefinition", "parameters": { - "id": 3847, + "id": 4198, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3846, + "id": 4197, "name": "x", "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10867:9:25", + "scope": 4211, + "src": "11277:9:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12479,10 +12371,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3845, + "id": 4196, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10867:7:25", + "src": "11277:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12492,31 +12384,30 @@ "visibility": "internal" } ], - "src": "10866:11:25" + "src": "11276:11:26" }, - "payable": false, "returnParameters": { - "id": 3850, + "id": 4201, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3849, + "id": 4200, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10900:7:25", + "scope": 4211, + "src": "11310:14:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3848, + "id": 4199, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10900:5:25", + "src": "11310:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -12526,30 +12417,32 @@ "visibility": "internal" } ], - "src": "10899:9:25" + "src": "11309:16:26" }, - "scope": 4000, - "src": "10846:131:25", + "scope": 4351, + "src": "11256:138:26", "stateMutability": "pure", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3998, + "id": 4349, "nodeType": "Block", - "src": "11008:1178:25", + "src": "11425:1178:26", "statements": [ { - "assignments": [], + "assignments": [ + 4215 + ], "declarations": [ { "constant": false, - "id": 3864, + "id": 4215, "name": "methodId", "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11012:15:25", + "scope": 4349, + "src": "11429:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12557,10 +12450,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3863, + "id": 4214, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "11012:6:25", + "src": "11429:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -12570,36 +12463,36 @@ "visibility": "internal" } ], - "id": 3865, + "id": 4216, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "11012:15:25" + "src": "11429:15:26" }, { "externalReferences": [ { "methodId": { - "declaration": 3864, + "declaration": 4215, "isOffset": false, "isSlot": false, - "src": "11045:8:25", + "src": "11462:8:26", "valueSize": 1 } } ], - "id": 3866, + "id": 4217, "nodeType": "InlineAssembly", "operations": "{\n methodId := calldataload(0)\n}", - "src": "11031:94:25" + "src": "11448:94:26" }, { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3873, + "id": 4224, "isConstant": false, "isLValue": false, "isPure": false, @@ -12608,34 +12501,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3867, + "id": 4218, "name": "calldataMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11127:17:25", + "referencedDeclaration": 3400, + "src": "11544:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, - "id": 3870, + "id": 4221, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3868, + "id": 4219, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11145:3:25", + "referencedDeclaration": 4366, + "src": "11562:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3869, + "id": 4220, "isConstant": false, "isLValue": false, "isPure": false, @@ -12643,7 +12536,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11145:8:25", + "src": "11562:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -12654,9 +12547,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11127:27:25", + "src": "11544:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -12666,18 +12559,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3871, + "id": 4222, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11158:8:25", + "referencedDeclaration": 3378, + "src": "11575:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3872, + "id": 4223, "isConstant": false, "isLValue": false, "isPure": true, @@ -12685,26 +12578,26 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11158:15:25", + "src": "11575:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11127:46:25", + "src": "11544:46:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3882, + "id": 4233, "nodeType": "IfStatement", - "src": "11123:101:25", + "src": "11540:101:26", "trueBody": { - "id": 3881, + "id": 4232, "nodeType": "Block", - "src": "11175:49:25", + "src": "11592:49:26", "statements": [ { "expression": { @@ -12714,34 +12607,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3875, + "id": 4226, "name": "calldataRevertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "11187:21:25", + "referencedDeclaration": 3408, + "src": "11604:21:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, - "id": 3878, + "id": 4229, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3876, + "id": 4227, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11209:3:25", + "referencedDeclaration": 4366, + "src": "11626:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3877, + "id": 4228, "isConstant": false, "isLValue": false, "isPure": false, @@ -12749,7 +12642,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11209:8:25", + "src": "11626:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -12760,7 +12653,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11187:31:25", + "src": "11604:31:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -12774,21 +12667,21 @@ "typeString": "string storage ref" } ], - "id": 3874, + "id": 4225, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4021, - "src": "11180:6:25", + "referencedDeclaration": 4372, + "src": "11597:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 3879, + "id": 4230, "isConstant": false, "isLValue": false, "isPure": false, @@ -12796,15 +12689,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11180:39:25", + "src": "11597:39:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3880, + "id": 4231, "nodeType": "ExpressionStatement", - "src": "11180:39:25" + "src": "11597:39:26" } ] } @@ -12813,10 +12706,10 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3889, + "id": 4240, "isConstant": false, "isLValue": false, "isPure": false, @@ -12825,34 +12718,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3883, + "id": 4234, "name": "calldataMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11231:17:25", + "referencedDeclaration": 3400, + "src": "11648:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, - "id": 3886, + "id": 4237, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3884, + "id": 4235, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11249:3:25", + "referencedDeclaration": 4366, + "src": "11666:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3885, + "id": 4236, "isConstant": false, "isLValue": false, "isPure": false, @@ -12860,7 +12753,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11249:8:25", + "src": "11666:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -12871,9 +12764,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11231:27:25", + "src": "11648:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -12883,18 +12776,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3887, + "id": 4238, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11262:8:25", + "referencedDeclaration": 3378, + "src": "11679:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3888, + "id": 4239, "isConstant": false, "isLValue": false, "isPure": true, @@ -12902,26 +12795,26 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11262:17:25", + "src": "11679:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11231:48:25", + "src": "11648:48:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3894, + "id": 4245, "nodeType": "IfStatement", - "src": "11227:75:25", + "src": "11644:75:26", "trueBody": { - "id": 3893, + "id": 4244, "nodeType": "Block", - "src": "11281:21:25", + "src": "11698:21:26", "statements": [ { "expression": { @@ -12929,18 +12822,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3890, + "id": 4241, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11286:9:25", + "referencedDeclaration": 4146, + "src": "11703:9:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3891, + "id": 4242, "isConstant": false, "isLValue": false, "isPure": false, @@ -12948,31 +12841,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11286:11:25", + "src": "11703:11:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3892, + "id": 4243, "nodeType": "ExpressionStatement", - "src": "11286:11:25" + "src": "11703:11:26" } ] } }, { "assignments": [ - 3896 + 4247 ], "declarations": [ { "constant": false, - "id": 3896, + "id": 4247, "name": "result", "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11305:19:25", + "scope": 4349, + "src": "11722:19:26", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -12980,10 +12873,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3895, + "id": 4246, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11305:5:25", + "src": "11722:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -12993,39 +12886,39 @@ "visibility": "internal" } ], - "id": 3901, + "id": 4252, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3897, + "id": 4248, "name": "calldataExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "11327:20:25", + "referencedDeclaration": 3404, + "src": "11744:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes memory => bytes storage ref)" } }, - "id": 3900, + "id": 4251, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3898, + "id": 4249, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11348:3:25", + "referencedDeclaration": 4366, + "src": "11765:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3899, + "id": 4250, "isConstant": false, "isLValue": false, "isPure": false, @@ -13033,7 +12926,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11348:8:25", + "src": "11765:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -13044,14 +12937,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11327:30:25", + "src": "11744:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "11305:52:25" + "src": "11722:52:26" }, { "condition": { @@ -13060,7 +12953,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3905, + "id": 4256, "isConstant": false, "isLValue": false, "isPure": false, @@ -13069,18 +12962,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3902, + "id": 4253, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11402:6:25", + "referencedDeclaration": 4247, + "src": "11819:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3903, + "id": 4254, "isConstant": false, "isLValue": false, "isPure": false, @@ -13088,7 +12981,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11402:13:25", + "src": "11819:13:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13099,14 +12992,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3904, + "id": 4255, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11419:1:25", + "src": "11836:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13114,29 +13007,29 @@ }, "value": "0" }, - "src": "11402:18:25", + "src": "11819:18:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3938, + "id": 4289, "nodeType": "IfStatement", - "src": "11398:262:25", + "src": "11815:262:26", "trueBody": { - "id": 3937, + "id": 4288, "nodeType": "Block", - "src": "11422:238:25", + "src": "11839:238:26", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3911, + "id": 4262, "isConstant": false, "isLValue": false, "isPure": false, @@ -13145,26 +13038,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3906, + "id": 4257, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11431:17:25", + "referencedDeclaration": 3420, + "src": "11848:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3908, + "id": 4259, "indexExpression": { "argumentTypes": null, - "id": 3907, + "id": 4258, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11449:8:25", + "referencedDeclaration": 4215, + "src": "11866:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -13175,9 +13068,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11431:27:25", + "src": "11848:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -13187,18 +13080,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3909, + "id": 4260, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11462:8:25", + "referencedDeclaration": 3378, + "src": "11879:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3910, + "id": 4261, "isConstant": false, "isLValue": false, "isPure": true, @@ -13206,26 +13099,26 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11462:15:25", + "src": "11879:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11431:46:25", + "src": "11848:46:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3919, + "id": 4270, "nodeType": "IfStatement", - "src": "11427:104:25", + "src": "11844:104:26", "trueBody": { - "id": 3918, + "id": 4269, "nodeType": "Block", - "src": "11479:52:25", + "src": "11896:52:26", "statements": [ { "expression": { @@ -13235,26 +13128,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3913, + "id": 4264, "name": "methodIdRevertMessages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "11492:22:25", + "referencedDeclaration": 3428, + "src": "11909:22:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string storage ref)" } }, - "id": 3915, + "id": 4266, "indexExpression": { "argumentTypes": null, - "id": 3914, + "id": 4265, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11515:8:25", + "referencedDeclaration": 4215, + "src": "11932:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -13265,7 +13158,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11492:32:25", + "src": "11909:32:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -13279,21 +13172,21 @@ "typeString": "string storage ref" } ], - "id": 3912, + "id": 4263, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4021, - "src": "11485:6:25", + "referencedDeclaration": 4372, + "src": "11902:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 3916, + "id": 4267, "isConstant": false, "isLValue": false, "isPure": false, @@ -13301,15 +13194,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11485:40:25", + "src": "11902:40:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3917, + "id": 4268, "nodeType": "ExpressionStatement", - "src": "11485:40:25" + "src": "11902:40:26" } ] } @@ -13318,10 +13211,10 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3925, + "id": 4276, "isConstant": false, "isLValue": false, "isPure": false, @@ -13330,26 +13223,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3920, + "id": 4271, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11539:17:25", + "referencedDeclaration": 3420, + "src": "11956:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3922, + "id": 4273, "indexExpression": { "argumentTypes": null, - "id": 3921, + "id": 4272, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11557:8:25", + "referencedDeclaration": 4215, + "src": "11974:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -13360,9 +13253,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11539:27:25", + "src": "11956:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -13372,18 +13265,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3923, + "id": 4274, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11570:8:25", + "referencedDeclaration": 3378, + "src": "11987:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3924, + "id": 4275, "isConstant": false, "isLValue": false, "isPure": true, @@ -13391,26 +13284,26 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11570:17:25", + "src": "11987:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11539:48:25", + "src": "11956:48:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3930, + "id": 4281, "nodeType": "IfStatement", - "src": "11535:77:25", + "src": "11952:77:26", "trueBody": { - "id": 3929, + "id": 4280, "nodeType": "Block", - "src": "11589:23:25", + "src": "12006:23:26", "statements": [ { "expression": { @@ -13418,18 +13311,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3926, + "id": 4277, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11595:9:25", + "referencedDeclaration": 4146, + "src": "12012:9:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3927, + "id": 4278, "isConstant": false, "isLValue": false, "isPure": false, @@ -13437,15 +13330,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11595:11:25", + "src": "12012:11:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3928, + "id": 4279, "nodeType": "ExpressionStatement", - "src": "11595:11:25" + "src": "12012:11:26" } ] } @@ -13453,19 +13346,19 @@ { "expression": { "argumentTypes": null, - "id": 3935, + "id": 4286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3931, + "id": 4282, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11616:6:25", + "referencedDeclaration": 4247, + "src": "12033:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -13477,26 +13370,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3932, + "id": 4283, "name": "methodIdExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "11625:20:25", + "referencedDeclaration": 3424, + "src": "12042:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes storage ref)" } }, - "id": 3934, + "id": 4285, "indexExpression": { "argumentTypes": null, - "id": 3933, + "id": 4284, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11646:8:25", + "referencedDeclaration": 4215, + "src": "12063:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -13507,21 +13400,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11625:30:25", + "src": "12042:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "src": "11616:39:25", + "src": "12033:39:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3936, + "id": 4287, "nodeType": "ExpressionStatement", - "src": "11616:39:25" + "src": "12033:39:26" } ] } @@ -13533,7 +13426,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3942, + "id": 4293, "isConstant": false, "isLValue": false, "isPure": false, @@ -13542,18 +13435,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3939, + "id": 4290, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11705:6:25", + "referencedDeclaration": 4247, + "src": "12122:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3940, + "id": 4291, "isConstant": false, "isLValue": false, "isPure": false, @@ -13561,7 +13454,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11705:13:25", + "src": "12122:13:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13572,14 +13465,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3941, + "id": 4292, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11722:1:25", + "src": "12139:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13587,43 +13480,43 @@ }, "value": "0" }, - "src": "11705:18:25", + "src": "12122:18:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3967, + "id": 4318, "nodeType": "IfStatement", - "src": "11701:218:25", + "src": "12118:218:26", "trueBody": { - "id": 3966, + "id": 4317, "nodeType": "Block", - "src": "11725:194:25", + "src": "12142:194:26", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3946, + "id": 4297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3943, + "id": 4294, "name": "fallbackMockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11734:16:25", + "referencedDeclaration": 3434, + "src": "12151:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -13633,18 +13526,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3944, + "id": 4295, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11754:8:25", + "referencedDeclaration": 3378, + "src": "12171:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3945, + "id": 4296, "isConstant": false, "isLValue": false, "isPure": true, @@ -13652,26 +13545,26 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11754:15:25", + "src": "12171:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11734:35:25", + "src": "12151:35:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3952, + "id": 4303, "nodeType": "IfStatement", - "src": "11730:82:25", + "src": "12147:82:26", "trueBody": { - "id": 3951, + "id": 4302, "nodeType": "Block", - "src": "11771:41:25", + "src": "12188:41:26", "statements": [ { "expression": { @@ -13679,12 +13572,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3948, + "id": 4299, "name": "fallbackRevertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "11784:21:25", + "referencedDeclaration": 3438, + "src": "12201:21:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -13698,21 +13591,21 @@ "typeString": "string storage ref" } ], - "id": 3947, + "id": 4298, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4021, - "src": "11777:6:25", + "referencedDeclaration": 4372, + "src": "12194:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 3949, + "id": 4300, "isConstant": false, "isLValue": false, "isPure": false, @@ -13720,15 +13613,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11777:29:25", + "src": "12194:29:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3950, + "id": 4301, "nodeType": "ExpressionStatement", - "src": "11777:29:25" + "src": "12194:29:26" } ] } @@ -13737,24 +13630,24 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3956, + "id": 4307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3953, + "id": 4304, "name": "fallbackMockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11820:16:25", + "referencedDeclaration": 3434, + "src": "12237:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -13764,18 +13657,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3954, + "id": 4305, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11840:8:25", + "referencedDeclaration": 3378, + "src": "12257:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3955, + "id": 4306, "isConstant": false, "isLValue": false, "isPure": true, @@ -13783,26 +13676,26 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11840:17:25", + "src": "12257:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11820:37:25", + "src": "12237:37:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3961, + "id": 4312, "nodeType": "IfStatement", - "src": "11816:66:25", + "src": "12233:66:26", "trueBody": { - "id": 3960, + "id": 4311, "nodeType": "Block", - "src": "11859:23:25", + "src": "12276:23:26", "statements": [ { "expression": { @@ -13810,18 +13703,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3957, + "id": 4308, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11865:9:25", + "referencedDeclaration": 4146, + "src": "12282:9:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3958, + "id": 4309, "isConstant": false, "isLValue": false, "isPure": false, @@ -13829,15 +13722,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11865:11:25", + "src": "12282:11:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3959, + "id": 4310, "nodeType": "ExpressionStatement", - "src": "11865:11:25" + "src": "12282:11:26" } ] } @@ -13845,19 +13738,19 @@ { "expression": { "argumentTypes": null, - "id": 3964, + "id": 4315, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3962, + "id": 4313, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11886:6:25", + "referencedDeclaration": 4247, + "src": "12303:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -13867,26 +13760,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3963, + "id": 4314, "name": "fallbackExpectation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "11895:19:25", + "referencedDeclaration": 3436, + "src": "12312:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "src": "11886:28:25", + "src": "12303:28:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3965, + "id": 4316, "nodeType": "ExpressionStatement", - "src": "11886:28:25" + "src": "12303:28:26" } ] } @@ -13894,19 +13787,19 @@ { "expression": { "argumentTypes": null, - "id": 3970, + "id": 4321, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3968, + "id": 4319, "name": "invocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "11946:11:25", + "referencedDeclaration": 3440, + "src": "12363:11:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13917,14 +13810,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3969, + "id": 4320, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11961:1:25", + "src": "12378:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -13932,20 +13825,20 @@ }, "value": "1" }, - "src": "11946:16:25", + "src": "12363:16:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3971, + "id": 4322, "nodeType": "ExpressionStatement", - "src": "11946:16:25" + "src": "12363:16:26" }, { "expression": { "argumentTypes": null, - "id": 3982, + "id": 4333, "isConstant": false, "isLValue": false, "isPure": false, @@ -13954,18 +13847,18 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3972, + "id": 4323, "name": "methodIdInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "11966:19:25", + "referencedDeclaration": 3432, + "src": "12383:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3980, + "id": 4331, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -13974,12 +13867,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3976, + "id": 4327, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12013:10:25", + "referencedDeclaration": 3442, + "src": "12430:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13987,12 +13880,12 @@ }, { "argumentTypes": null, - "id": 3977, + "id": 4328, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "12025:8:25", + "referencedDeclaration": 4215, + "src": "12442:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -14012,18 +13905,18 @@ ], "expression": { "argumentTypes": null, - "id": 3974, + "id": 4325, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "11996:3:25", + "referencedDeclaration": 4353, + "src": "12413:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3975, + "id": 4326, "isConstant": false, "isLValue": false, "isPure": true, @@ -14031,13 +13924,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11996:16:25", + "src": "12413:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3978, + "id": 4329, "isConstant": false, "isLValue": false, "isPure": false, @@ -14045,7 +13938,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11996:38:25", + "src": "12413:38:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -14059,18 +13952,18 @@ "typeString": "bytes memory" } ], - "id": 3973, + "id": 4324, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "11986:9:25", + "referencedDeclaration": 4360, + "src": "12403:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3979, + "id": 4330, "isConstant": false, "isLValue": false, "isPure": false, @@ -14078,7 +13971,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11986:49:25", + "src": "12403:49:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14089,7 +13982,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "11966:70:25", + "src": "12383:70:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14100,14 +13993,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3981, + "id": 4332, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12040:1:25", + "src": "12457:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -14115,20 +14008,20 @@ }, "value": "1" }, - "src": "11966:75:25", + "src": "12383:75:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3983, + "id": 4334, "nodeType": "ExpressionStatement", - "src": "11966:75:25" + "src": "12383:75:26" }, { "expression": { "argumentTypes": null, - "id": 3995, + "id": 4346, "isConstant": false, "isLValue": false, "isPure": false, @@ -14137,18 +14030,18 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3984, + "id": 4335, "name": "calldataInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "12045:19:25", + "referencedDeclaration": 3412, + "src": "12462:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3993, + "id": 4344, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -14157,12 +14050,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3988, + "id": 4339, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12092:10:25", + "referencedDeclaration": 3442, + "src": "12509:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14172,18 +14065,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3989, + "id": 4340, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "12104:3:25", + "referencedDeclaration": 4366, + "src": "12521:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3990, + "id": 4341, "isConstant": false, "isLValue": false, "isPure": false, @@ -14191,7 +14084,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12104:8:25", + "src": "12521:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -14211,18 +14104,18 @@ ], "expression": { "argumentTypes": null, - "id": 3986, + "id": 4337, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12075:3:25", + "referencedDeclaration": 4353, + "src": "12492:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3987, + "id": 4338, "isConstant": false, "isLValue": false, "isPure": true, @@ -14230,13 +14123,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12075:16:25", + "src": "12492:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3991, + "id": 4342, "isConstant": false, "isLValue": false, "isPure": false, @@ -14244,7 +14137,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12075:38:25", + "src": "12492:38:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -14258,18 +14151,18 @@ "typeString": "bytes memory" } ], - "id": 3985, + "id": 4336, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12065:9:25", + "referencedDeclaration": 4360, + "src": "12482:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3992, + "id": 4343, "isConstant": false, "isLValue": false, "isPure": false, @@ -14277,7 +14170,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12065:49:25", + "src": "12482:49:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14288,7 +14181,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "12045:70:25", + "src": "12462:70:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14299,14 +14192,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3994, + "id": 4345, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12119:1:25", + "src": "12536:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -14314,101 +14207,99 @@ }, "value": "1" }, - "src": "12045:75:25", + "src": "12462:75:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3996, + "id": 4347, "nodeType": "ExpressionStatement", - "src": "12045:75:25" + "src": "12462:75:26" }, { "externalReferences": [ { "result": { - "declaration": 3896, + "declaration": 4247, "isOffset": false, "isSlot": false, - "src": "12156:6:25", + "src": "12588:6:26", "valueSize": 1 } }, { "result": { - "declaration": 3896, + "declaration": 4247, "isOffset": false, "isSlot": false, - "src": "12171:6:25", + "src": "12573:6:26", "valueSize": 1 } } ], - "id": 3997, + "id": 4348, "nodeType": "InlineAssembly", "operations": "{\n return(add(0x20, result), mload(result))\n}", - "src": "12125:61:25" + "src": "12542:61:26" } ] }, "documentation": null, - "id": 3999, + "id": 4350, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "fallback", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3861, + "id": 4212, "nodeType": "ParameterList", "parameters": [], - "src": "10988:2:25" + "src": "11405:2:26" }, - "payable": true, "returnParameters": { - "id": 3862, + "id": 4213, "nodeType": "ParameterList", "parameters": [], - "src": "11008:0:25" + "src": "11425:0:26" }, - "scope": 4000, - "src": "10980:1206:25", + "scope": 4351, + "src": "11397:1206:26", "stateMutability": "payable", "superFunction": null, "visibility": "external" } ], - "scope": 4001, - "src": "3453:8735:25" + "scope": 4352, + "src": "3610:8995:26" } ], - "src": "0:12189:25" + "src": "0:12606:26" }, "legacyAST": { "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", "exportedSymbols": { "MockContract": [ - 4000 + 4351 ], "MockInterface": [ - 3021 + 3372 ] }, - "id": 4001, + "id": 4352, "nodeType": "SourceUnit", "nodes": [ { - "id": 2877, + "id": 3228, "literals": [ "solidity", "^", - "0.4", - ".23" + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:23:26" }, { "baseContracts": [], @@ -14416,9 +14307,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 3021, + "id": 3372, "linearizedBaseContracts": [ - 3021 + 3372 ], "name": "MockInterface", "nodeType": "ContractDefinition", @@ -14426,35 +14317,34 @@ { "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": 2882, + "id": 3233, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 2880, + "id": 3231, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2879, + "id": 3230, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2882, - "src": "358:14:25", + "scope": 3233, + "src": "357:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2878, + "id": 3229, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "358:5:25", + "src": "357:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -14464,17 +14354,16 @@ "visibility": "internal" } ], - "src": "357:16:25" + "src": "356:25:26" }, - "payable": false, "returnParameters": { - "id": 2881, + "id": 3232, "nodeType": "ParameterList", "parameters": [], - "src": "382:0:25" + "src": "390:0:26" }, - "scope": 3021, - "src": "334:49:25", + "scope": 3372, + "src": "333:58:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14482,24 +14371,23 @@ { "body": null, "documentation": null, - "id": 2887, + "id": 3238, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturnBool", "nodeType": "FunctionDefinition", "parameters": { - "id": 2885, + "id": 3236, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2884, + "id": 3235, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2887, - "src": "413:13:25", + "scope": 3238, + "src": "421:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14507,10 +14395,10 @@ "typeString": "bool" }, "typeName": { - "id": 2883, + "id": 3234, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "413:4:25", + "src": "421:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14520,17 +14408,16 @@ "visibility": "internal" } ], - "src": "412:15:25" + "src": "420:15:26" }, - "payable": false, "returnParameters": { - "id": 2886, + "id": 3237, "nodeType": "ParameterList", "parameters": [], - "src": "436:0:25" + "src": "444:0:26" }, - "scope": 3021, - "src": "385:52:25", + "scope": 3372, + "src": "393:52:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14538,24 +14425,23 @@ { "body": null, "documentation": null, - "id": 2892, + "id": 3243, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturnUint", "nodeType": "FunctionDefinition", "parameters": { - "id": 2890, + "id": 3241, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2889, + "id": 3240, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2892, - "src": "467:13:25", + "scope": 3243, + "src": "475:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14563,10 +14449,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2888, + "id": 3239, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "467:4:25", + "src": "475:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14576,17 +14462,16 @@ "visibility": "internal" } ], - "src": "466:15:25" + "src": "474:15:26" }, - "payable": false, "returnParameters": { - "id": 2891, + "id": 3242, "nodeType": "ParameterList", "parameters": [], - "src": "490:0:25" + "src": "498:0:26" }, - "scope": 3021, - "src": "439:52:25", + "scope": 3372, + "src": "447:52:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14594,24 +14479,23 @@ { "body": null, "documentation": null, - "id": 2897, + "id": 3248, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyReturnAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 2895, + "id": 3246, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2894, + "id": 3245, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2897, - "src": "524:16:25", + "scope": 3248, + "src": "532:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14619,10 +14503,11 @@ "typeString": "address" }, "typeName": { - "id": 2893, + "id": 3244, "name": "address", "nodeType": "ElementaryTypeName", - "src": "524:7:25", + "src": "532:7:26", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14632,17 +14517,16 @@ "visibility": "internal" } ], - "src": "523:18:25" + "src": "531:18:26" }, - "payable": false, "returnParameters": { - "id": 2896, + "id": 3247, "nodeType": "ParameterList", "parameters": [], - "src": "550:0:25" + "src": "558:0:26" }, - "scope": 3021, - "src": "493:58:25", + "scope": 3372, + "src": "501:58:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14650,28 +14534,26 @@ { "body": null, "documentation": null, - "id": 2900, + "id": 3251, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyRevert", "nodeType": "FunctionDefinition", "parameters": { - "id": 2898, + "id": 3249, "nodeType": "ParameterList", "parameters": [], - "src": "577:2:25" + "src": "585:2:26" }, - "payable": false, "returnParameters": { - "id": 2899, + "id": 3250, "nodeType": "ParameterList", "parameters": [], - "src": "588:0:25" + "src": "596:0:26" }, - "scope": 3021, - "src": "554:35:25", + "scope": 3372, + "src": "562:35:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14679,35 +14561,34 @@ { "body": null, "documentation": null, - "id": 2905, + "id": 3256, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyRevertWithMessage", "nodeType": "FunctionDefinition", "parameters": { - "id": 2903, + "id": 3254, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2902, + "id": 3253, "name": "message", "nodeType": "VariableDeclaration", - "scope": 2905, - "src": "626:14:25", + "scope": 3256, + "src": "634:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string" }, "typeName": { - "id": 2901, + "id": 3252, "name": "string", "nodeType": "ElementaryTypeName", - "src": "626:6:25", + "src": "634:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -14717,17 +14598,16 @@ "visibility": "internal" } ], - "src": "625:16:25" + "src": "633:25:26" }, - "payable": false, "returnParameters": { - "id": 2904, + "id": 3255, "nodeType": "ParameterList", "parameters": [], - "src": "650:0:25" + "src": "667:0:26" }, - "scope": 3021, - "src": "591:60:25", + "scope": 3372, + "src": "599:69:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14735,28 +14615,26 @@ { "body": null, "documentation": null, - "id": 2908, + "id": 3259, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenAnyRunOutOfGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 2906, + "id": 3257, "nodeType": "ParameterList", "parameters": [], - "src": "681:2:25" + "src": "698:2:26" }, - "payable": false, "returnParameters": { - "id": 2907, + "id": 3258, "nodeType": "ParameterList", "parameters": [], - "src": "692:0:25" + "src": "709:0:26" }, - "scope": 3021, - "src": "653:40:25", + "scope": 3372, + "src": "670:40:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14764,35 +14642,34 @@ { "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": 2915, + "id": 3266, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenMethodReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 2913, + "id": 3264, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2910, + "id": 3261, "name": "method", "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1222:12:25", + "scope": 3266, + "src": "1239:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2909, + "id": 3260, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1222:5:25", + "src": "1239:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -14803,22 +14680,22 @@ }, { "constant": false, - "id": 2912, + "id": 3263, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1236:14:25", + "scope": 3266, + "src": "1262:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2911, + "id": 3262, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1236:5:25", + "src": "1262:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -14828,17 +14705,16 @@ "visibility": "internal" } ], - "src": "1221:30:25" + "src": "1238:48:26" }, - "payable": false, "returnParameters": { - "id": 2914, + "id": 3265, "nodeType": "ParameterList", "parameters": [], - "src": "1260:0:25" + "src": "1295:0:26" }, - "scope": 3021, - "src": "1195:66:25", + "scope": 3372, + "src": "1212:84:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14846,35 +14722,34 @@ { "body": null, "documentation": null, - "id": 2922, + "id": 3273, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenMethodReturnBool", "nodeType": "FunctionDefinition", "parameters": { - "id": 2920, + "id": 3271, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2917, + "id": 3268, "name": "method", "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1294:12:25", + "scope": 3273, + "src": "1329:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 2916, + "id": 3267, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1294:5:25", + "src": "1329:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -14885,11 +14760,11 @@ }, { "constant": false, - "id": 2919, + "id": 3270, "name": "response", "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1308:13:25", + "scope": 3273, + "src": "1352:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14897,10 +14772,10 @@ "typeString": "bool" }, "typeName": { - "id": 2918, + "id": 3269, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1308:4:25", + "src": "1352:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14910,17 +14785,16 @@ "visibility": "internal" } ], - "src": "1293:29:25" + "src": "1328:38:26" }, - "payable": false, "returnParameters": { - "id": 2921, + "id": 3272, "nodeType": "ParameterList", "parameters": [], - "src": "1331:0:25" + "src": "1375:0:26" }, - "scope": 3021, - "src": "1263:69:25", + "scope": 3372, + "src": "1298:78:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -14928,4409 +14802,12 @@ { "body": null, "documentation": null, - "id": 2929, + "id": 3280, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "givenMethodReturnUint", "nodeType": "FunctionDefinition", - "parameters": { - "id": 2927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2924, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1365:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2923, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1365:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2926, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1379:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2925, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1379:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1364:29:25" - }, - "payable": false, - "returnParameters": { - "id": 2928, - "nodeType": "ParameterList", - "parameters": [], - "src": "1402:0:25" - }, - "scope": 3021, - "src": "1334:69:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2936, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2934, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2931, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1439:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2930, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1439:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2933, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1453:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2932, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1453:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1438:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2935, - "nodeType": "ParameterList", - "parameters": [], - "src": "1479:0:25" - }, - "scope": 3021, - "src": "1405:75:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2941, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2939, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2938, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2941, - "src": "1510:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2937, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1510:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1509:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2940, - "nodeType": "ParameterList", - "parameters": [], - "src": "1532:0:25" - }, - "scope": 3021, - "src": "1483:50:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2948, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2943, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1573:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2942, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1573:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2945, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1587:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2944, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1587:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1572:30:25" - }, - "payable": false, - "returnParameters": { - "id": 2947, - "nodeType": "ParameterList", - "parameters": [], - "src": "1611:0:25" - }, - "scope": 3021, - "src": "1535:77:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2953, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2950, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2953, - "src": "1646:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1646:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1645:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2952, - "nodeType": "ParameterList", - "parameters": [], - "src": "1668:0:25" - }, - "scope": 3021, - "src": "1614:55:25", - "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 calldata ABI encoded calldata (methodId and arguments)\n@param response ABI encoded response that will be returned if contract is invoked with calldata", - "id": 2960, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2958, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2955, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2089:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2954, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2089:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2957, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2105:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2956, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2105:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2088:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2959, - "nodeType": "ParameterList", - "parameters": [], - "src": "2129:0:25" - }, - "scope": 3021, - "src": "2060:70:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2967, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2962, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2165:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2961, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2165:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2964, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2963, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2164:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2966, - "nodeType": "ParameterList", - "parameters": [], - "src": "2204:0:25" - }, - "scope": 3021, - "src": "2132:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2974, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2969, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2240:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2968, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2240:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2971, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2256:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2970, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2256:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2239:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2973, - "nodeType": "ParameterList", - "parameters": [], - "src": "2279:0:25" - }, - "scope": 3021, - "src": "2207:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2981, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2979, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2976, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2318:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2975, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2318:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2978, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2334:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2334:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2317:34:25" - }, - "payable": false, - "returnParameters": { - "id": 2980, - "nodeType": "ParameterList", - "parameters": [], - "src": "2360:0:25" - }, - "scope": 3021, - "src": "2282:79:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2986, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2983, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2986, - "src": "2393:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2982, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2393:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2392:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2985, - "nodeType": "ParameterList", - "parameters": [], - "src": "2417:0:25" - }, - "scope": 3021, - "src": "2364:54:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2993, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2988, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2460:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2987, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2460:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2990, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2476:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2989, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2476:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2459:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [], - "src": "2500:0:25" - }, - "scope": 3021, - "src": "2420:81:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2998, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2996, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2995, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2998, - "src": "2537:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2994, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2537:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2536:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2997, - "nodeType": "ParameterList", - "parameters": [], - "src": "2561:0:25" - }, - "scope": 3021, - "src": "2503:59:25", - "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": 3003, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2999, - "nodeType": "ParameterList", - "parameters": [], - "src": "2691:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3001, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3003, - "src": "2712:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3000, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2712:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2711:6:25" - }, - "scope": 3021, - "src": "2667:51:25", - "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": 3010, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3006, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3005, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3005:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3004, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3005:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3004:14:25" - }, - "payable": false, - "returnParameters": { - "id": 3009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3008, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3037:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3007, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3037:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3036:6:25" - }, - "scope": 3021, - "src": "2971:72:25", - "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 calldata ABI encoded calldata (methodId and arguments)", - "id": 3017, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3263:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3011, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3263:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3262:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3015, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3297:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3014, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3297:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3296:6:25" - }, - "scope": 3021, - "src": "3227:76:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Resets all mocked methods and invocation counts.", - "id": 3020, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3018, - "nodeType": "ParameterList", - "parameters": [], - "src": "3389:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3019, - "nodeType": "ParameterList", - "parameters": [], - "src": "3400:0:25" - }, - "scope": 3021, - "src": "3375:26:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4001, - "src": "26:3377:25" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3022, - "name": "MockInterface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3021, - "src": "3478:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MockInterface_$3021", - "typeString": "contract MockInterface" - } - }, - "id": 3023, - "nodeType": "InheritanceSpecifier", - "src": "3478:13:25" - } - ], - "contractDependencies": [ - 3021 - ], - "contractKind": "contract", - "documentation": "Implementation of the MockInterface.", - "fullyImplemented": true, - "id": 4000, - "linearizedBaseContracts": [ - 4000, - 3021 - ], - "name": "MockContract", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "MockContract.MockType", - "id": 3027, - "members": [ - { - "id": 3024, - "name": "Return", - "nodeType": "EnumValue", - "src": "3511:6:25" - }, - { - "id": 3025, - "name": "Revert", - "nodeType": "EnumValue", - "src": "3519:6:25" - }, - { - "id": 3026, - "name": "OutOfGas", - "nodeType": "EnumValue", - "src": "3527:8:25" - } - ], - "name": "MockType", - "nodeType": "EnumDefinition", - "src": "3495:42:25" - }, - { - "constant": true, - "id": 3030, - "name": "MOCKS_LIST_START", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3541:50:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3028, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3541:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3584:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3033, - "name": "MOCKS_LIST_END", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3594:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes" - }, - "typeName": { - "id": 3031, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3594:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786666", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3633:6:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", - "typeString": "literal_string \"0xff\"" - }, - "value": "0xff" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3038, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3642:71:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3034, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3642:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3036, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "3698:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - ], - "id": 3035, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3688:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3688:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3041, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3716:51:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3039, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3716:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3760:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 3045, - "name": "calldataMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3832:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "typeName": { - "id": 3044, - "keyType": { - "id": 3042, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3840:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "3832:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "valueType": { - "id": 3043, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3851:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3049, - "name": "calldataMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3874:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "typeName": { - "id": 3048, - "keyType": { - "id": 3046, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3882:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3874:26:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3047, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "3891:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3053, - "name": "calldataExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3921:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "typeName": { - "id": 3052, - "keyType": { - "id": 3050, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3929:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3921:23:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "valueType": { - "id": 3051, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3938:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3057, - "name": "calldataRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3968:46:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "typeName": { - "id": 3056, - "keyType": { - "id": 3054, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3976:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3968:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "valueType": { - "id": 3055, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3985:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "calldataInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4017:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3060, - "keyType": { - "id": 3058, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4025:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4017:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3059, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4036:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3065, - "name": "methodIdMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4065:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "typeName": { - "id": 3064, - "keyType": { - "id": 3062, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4073:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4065:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "valueType": { - "id": 3063, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4083:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3069, - "name": "methodIdMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4107:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "typeName": { - "id": 3068, - "keyType": { - "id": 3066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4115:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4107:27:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3067, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4125:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3073, - "name": "methodIdExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4155:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "typeName": { - "id": 3072, - "keyType": { - "id": 3070, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4163:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4155:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "valueType": { - "id": 3071, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4173:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3077, - "name": "methodIdRevertMessages", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4203:48:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "typeName": { - "id": 3076, - "keyType": { - "id": 3074, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4211:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4203:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "valueType": { - "id": 3075, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4221:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3081, - "name": "methodIdInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4254:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3080, - "keyType": { - "id": 3078, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4262:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4254:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3079, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4273:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3083, - "name": "fallbackMockType", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4302:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "typeName": { - "contractScope": null, - "id": 3082, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4302:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3085, - "name": "fallbackExpectation", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4330:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes" - }, - "typeName": { - "id": 3084, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4330:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3087, - "name": "fallbackRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4358:28:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3086, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4358:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3089, - "name": "invocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4389:16:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3088, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4389:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3091, - "name": "resetCount", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4408:15:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3090, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4408:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3106, - "nodeType": "Block", - "src": "4448:114:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3094, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4452:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3096, - "indexExpression": { - "argumentTypes": null, - "id": 3095, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4466:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4452:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3097, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "4486:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "4452:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3099, - "nodeType": "ExpressionStatement", - "src": "4452:48:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3100, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4504:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3102, - "indexExpression": { - "argumentTypes": null, - "id": 3101, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4518:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4504:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3103, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4540:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4504:54:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3105, - "nodeType": "ExpressionStatement", - "src": "4504:54:25" - } - ] - }, - "documentation": null, - "id": 3107, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3092, - "nodeType": "ParameterList", - "parameters": [], - "src": "4438:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3093, - "nodeType": "ParameterList", - "parameters": [], - "src": "4448:0:25" - }, - "scope": 4000, - "src": "4427:135:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3140, - "nodeType": "Block", - "src": "4619:196:25", - "statements": [ - { - "assignments": [ - 3113 - ], - "declarations": [ - { - "constant": false, - "id": 3113, - "name": "callHash", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4623:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3112, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4623:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3117, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3115, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4652:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3114, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4642:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4642:15:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4623:34:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3118, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4665:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3120, - "indexExpression": { - "argumentTypes": null, - "id": 3119, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4679:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4665:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3121, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4665:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4699:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4665:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3139, - "nodeType": "IfStatement", - "src": "4661:151:25", - "trueBody": { - "id": 3138, - "nodeType": "Block", - "src": "4702:110:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3124, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4707:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3126, - "indexExpression": { - "argumentTypes": null, - "id": 3125, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4721:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4707:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3127, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4733:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3129, - "indexExpression": { - "argumentTypes": null, - "id": 3128, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4747:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4733:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "4707:57:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3131, - "nodeType": "ExpressionStatement", - "src": "4707:57:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3132, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4769:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3134, - "indexExpression": { - "argumentTypes": null, - "id": 3133, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4783:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4769:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3135, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4803:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "4769:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3137, - "nodeType": "ExpressionStatement", - "src": "4769:38:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3141, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackCalldataMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3109, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4592:17:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3108, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4592:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4591:19:25" - }, - "payable": false, - "returnParameters": { - "id": 3111, - "nodeType": "ParameterList", - "parameters": [], - "src": "4619:0:25" - }, - "scope": 4000, - "src": "4565:250:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3167, - "nodeType": "Block", - "src": "4870:161:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3146, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4878:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3148, - "indexExpression": { - "argumentTypes": null, - "id": 3147, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4892:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4878:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4905:3:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "4878:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3166, - "nodeType": "IfStatement", - "src": "4874:154:25", - "trueBody": { - "id": 3165, - "nodeType": "Block", - "src": "4910:118:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3151, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4915:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3153, - "indexExpression": { - "argumentTypes": null, - "id": 3152, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4929:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4915:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3154, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4941:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3156, - "indexExpression": { - "argumentTypes": null, - "id": 3155, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4955:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4941:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4915:59:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3158, - "nodeType": "ExpressionStatement", - "src": "4915:59:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3159, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4979:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3161, - "indexExpression": { - "argumentTypes": null, - "id": 3160, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4993:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4979:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3162, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "5015:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4979:44:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3164, - "nodeType": "ExpressionStatement", - "src": "4979:44:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3168, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackMethodIdMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3143, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3168, - "src": "4845:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3142, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4845:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4844:17:25" - }, - "payable": false, - "returnParameters": { - "id": 3145, - "nodeType": "ParameterList", - "parameters": [], - "src": "4870:0:25" - }, - "scope": 4000, - "src": "4818:213:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3182, - "nodeType": "Block", - "src": "5084:76:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3173, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5088:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3174, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5107:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5107:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5088:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3177, - "nodeType": "ExpressionStatement", - "src": "5088:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3178, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "5126:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3179, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3170, - "src": "5148:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "5126:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3181, - "nodeType": "ExpressionStatement", - "src": "5126:30:25" - } - ] - }, - "documentation": null, - "id": 3183, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3170, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3183, - "src": "5059:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3169, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5059:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5058:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [], - "src": "5084:0:25" - }, - "scope": 4000, - "src": "5034:126:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3192, - "nodeType": "Block", - "src": "5212:33:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3189, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "5232:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3188, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5216:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5216:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3191, - "nodeType": "ExpressionStatement", - "src": "5216:25:25" - } - ] - }, - "documentation": null, - "id": 3193, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3186, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3185, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3193, - "src": "5187:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3184, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5187:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5186:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3187, - "nodeType": "ParameterList", - "parameters": [], - "src": "5212:0:25" - }, - "scope": 4000, - "src": "5163:82:25", - "stateMutability": "nonpayable", - "superFunction": 2882, - "visibility": "external" - }, - { - "body": { - "id": 3211, - "nodeType": "Block", - "src": "5300:74:25", - "statements": [ - { - "assignments": [ - 3199 - ], - "declarations": [ - { - "constant": false, - "id": 3199, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5304:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3198, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5304:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3204, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3200, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3195, - "src": "5316:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5331:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5316:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5304:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3207, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3199, - "src": "5364:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3206, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5352:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5352:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3205, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5336:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5336:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3210, - "nodeType": "ExpressionStatement", - "src": "5336:34:25" - } - ] - }, - "documentation": null, - "id": 3212, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3195, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5276:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3194, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5276:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5275:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3197, - "nodeType": "ParameterList", - "parameters": [], - "src": "5300:0:25" - }, - "scope": 4000, - "src": "5248:126:25", - "stateMutability": "nonpayable", - "superFunction": 2887, - "visibility": "external" - }, - { - "body": { - "id": 3223, - "nodeType": "Block", - "src": "5429:47:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3219, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3214, - "src": "5461:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3218, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5449:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5449:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5433:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5433:38:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3222, - "nodeType": "ExpressionStatement", - "src": "5433:38:25" - } - ] - }, - "documentation": null, - "id": 3224, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3214, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3224, - "src": "5405:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3213, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5405:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5404:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3216, - "nodeType": "ParameterList", - "parameters": [], - "src": "5429:0:25" - }, - "scope": 4000, - "src": "5377:99:25", - "stateMutability": "nonpayable", - "superFunction": 2892, - "visibility": "external" - }, - { - "body": { - "id": 3235, - "nodeType": "Block", - "src": "5537:49:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3231, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3226, - "src": "5572:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3230, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "5557:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5557:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3229, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5541:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5541:41:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3234, - "nodeType": "ExpressionStatement", - "src": "5541:41:25" - } - ] - }, - "documentation": null, - "id": 3236, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3227, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3226, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "5510:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3225, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5510:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5509:18:25" - }, - "payable": false, - "returnParameters": { - "id": 3228, - "nodeType": "ParameterList", - "parameters": [], - "src": "5537:0:25" - }, - "scope": 4000, - "src": "5479:107:25", - "stateMutability": "nonpayable", - "superFunction": 2897, - "visibility": "external" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "5624:72:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3239, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5628:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3240, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5647:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5647:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5628:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3243, - "nodeType": "ExpressionStatement", - "src": "5628:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3244, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5666:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5690:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "5666:26:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3247, - "nodeType": "ExpressionStatement", - "src": "5666:26:25" - } - ] - }, - "documentation": null, - "id": 3249, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3237, - "nodeType": "ParameterList", - "parameters": [], - "src": "5612:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3238, - "nodeType": "ParameterList", - "parameters": [], - "src": "5624:0:25" - }, - "scope": 4000, - "src": "5589:107:25", - "stateMutability": "nonpayable", - "superFunction": 2900, - "visibility": "external" - }, - { - "body": { - "id": 3263, - "nodeType": "Block", - "src": "5759:77:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3254, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5763:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3255, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5782:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5782:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5763:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3258, - "nodeType": "ExpressionStatement", - "src": "5763:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3259, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5801:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3260, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "5825:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "5801:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3262, - "nodeType": "ExpressionStatement", - "src": "5801:31:25" - } - ] - }, - "documentation": null, - "id": 3264, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3264, - "src": "5734:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3250, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5734:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5733:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3253, - "nodeType": "ParameterList", - "parameters": [], - "src": "5759:0:25" - }, - "scope": 4000, - "src": "5699:137:25", - "stateMutability": "nonpayable", - "superFunction": 2905, - "visibility": "external" - }, - { - "body": { - "id": 3272, - "nodeType": "Block", - "src": "5879:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3267, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5883:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3268, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5902:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5902:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5883:36:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3271, - "nodeType": "ExpressionStatement", - "src": "5883:36:25" - } - ] - }, - "documentation": null, - "id": 3273, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3265, - "nodeType": "ParameterList", - "parameters": [], - "src": "5867:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3266, - "nodeType": "ParameterList", - "parameters": [], - "src": "5879:0:25" - }, - "scope": 4000, - "src": "5839:84:25", - "stateMutability": "nonpayable", - "superFunction": 2908, - "visibility": "external" - }, - { - "body": { - "id": 3297, - "nodeType": "Block", - "src": "5993:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3280, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "5997:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3282, - "indexExpression": { - "argumentTypes": null, - "id": 3281, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6015:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5997:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3283, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6023:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6023:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5997:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3286, - "nodeType": "ExpressionStatement", - "src": "5997:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3287, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "6042:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3289, - "indexExpression": { - "argumentTypes": null, - "id": 3288, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6063:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6042:26:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3290, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6071:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6042:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3292, - "nodeType": "ExpressionStatement", - "src": "6042:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3294, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6101:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3293, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6083:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6083:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3296, - "nodeType": "ExpressionStatement", - "src": "6083:23:25" - } - ] - }, - "documentation": null, - "id": 3298, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenCalldataReturn", - "nodeType": "FunctionDefinition", "parameters": { "id": 3278, "nodeType": "ParameterList", @@ -19338,21 +14815,21 @@ { "constant": false, "id": 3275, - "name": "call", + "name": "method", "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5956:10:25", + "scope": 3280, + "src": "1409:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", + "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 3274, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5956:5:25", + "src": "1409:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -19366,152 +14843,73 @@ "id": 3277, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5968:14:25", + "scope": 3280, + "src": "1432:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { "id": 3276, - "name": "bytes", + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5968:5:25", + "src": "1432:4:26", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "5955:28:25" + "src": "1408:38:26" }, - "payable": false, "returnParameters": { "id": 3279, "nodeType": "ParameterList", "parameters": [], - "src": "5993:0:25" + "src": "1455:0:26" }, - "scope": 4000, - "src": "5926:184:25", + "scope": 3372, + "src": "1378:78:26", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "private" + "visibility": "external" }, { - "body": { - "id": 3310, - "nodeType": "Block", - "src": "6180:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3306, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3300, - "src": "6205:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3307, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "6211:8:25", - "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": 3305, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3298, - "src": "6184:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6184:36:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3309, - "nodeType": "ExpressionStatement", - "src": "6184:36:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3311, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3287, + "implemented": false, + "kind": "function", "modifiers": [], - "name": "givenCalldataReturn", + "name": "givenMethodReturnAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 3303, + "id": 3285, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3300, - "name": "call", + "id": 3282, + "name": "method", "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6142:10:25", + "scope": 3287, + "src": "1492:21:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3299, + "id": 3281, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6142:5:25", + "src": "1492:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -19522,22 +14920,77 @@ }, { "constant": false, - "id": 3302, + "id": 3284, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6154:14:25", + "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": 3301, + "id": 3288, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6154:5:25", + "src": "1572:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -19547,240 +15000,240 @@ "visibility": "internal" } ], - "src": "6141:28:25" + "src": "1571:23:26" }, - "payable": false, "returnParameters": { - "id": 3304, + "id": 3291, "nodeType": "ParameterList", "parameters": [], - "src": "6180:0:25" + "src": "1603:0:26" }, - "scope": 4000, - "src": "6113:111:25", + "scope": 3372, + "src": "1545:59:26", "stateMutability": "nonpayable", - "superFunction": 2960, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3332, - "nodeType": "Block", - "src": "6296:83:25", - "statements": [ + "body": null, + "documentation": null, + "id": 3299, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "givenMethodRevertWithMessage", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3297, + "nodeType": "ParameterList", + "parameters": [ { - "assignments": [ - 3319 - ], - "declarations": [ - { - "constant": false, - "id": 3319, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6300:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3318, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6300:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3324, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3320, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3315, - "src": "6312:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6312:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6323:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, + "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_uint8", - "typeString": "uint8" + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6300:28:25" + "value": null, + "visibility": "internal" }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3326, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3313, - "src": "6351:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3328, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "6369:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3327, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6357:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6357:17:25", - "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": 3325, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6332:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6332:43:25", + "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_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "id": 3331, - "nodeType": "ExpressionStatement", - "src": "6332:43:25" + "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": 3333, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "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", @@ -19793,10 +15246,10 @@ "id": 3313, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6260:10:25", + "scope": 3318, + "src": "2273:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" @@ -19805,7 +15258,7 @@ "id": 3312, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6260:5:25", + "src": "2273:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -19819,8 +15272,8 @@ "id": 3315, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6272:13:25", + "scope": 3318, + "src": "2294:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19831,7 +15284,7 @@ "id": 3314, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6272:4:25", + "src": "2294:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19841,166 +15294,51 @@ "visibility": "internal" } ], - "src": "6259:27:25" + "src": "2272:36:26" }, - "payable": false, "returnParameters": { "id": 3317, "nodeType": "ParameterList", "parameters": [], - "src": "6296:0:25" + "src": "2317:0:26" }, - "scope": 4000, - "src": "6227:152:25", + "scope": 3372, + "src": "2240:78:26", "stateMutability": "nonpayable", - "superFunction": 2967, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3347, - "nodeType": "Block", - "src": "6451:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3341, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3335, - "src": "6474:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3343, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "6492:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3342, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6480:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6480:21:25", - "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": 3340, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6455:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6455:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3346, - "nodeType": "ExpressionStatement", - "src": "6455:47:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3348, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3325, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataReturnUint", "nodeType": "FunctionDefinition", "parameters": { - "id": 3338, + "id": 3323, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3335, + "id": 3320, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6415:10:25", + "scope": 3325, + "src": "2353:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3334, + "id": 3319, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6415:5:25", + "src": "2353:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -20011,11 +15349,11 @@ }, { "constant": false, - "id": 3337, + "id": 3322, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6427:13:25", + "scope": 3325, + "src": "2374:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20023,10 +15361,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3336, + "id": 3321, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6427:4:25", + "src": "2374:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20036,166 +15374,51 @@ "visibility": "internal" } ], - "src": "6414:27:25" + "src": "2352:36:26" }, - "payable": false, "returnParameters": { - "id": 3339, + "id": 3324, "nodeType": "ParameterList", "parameters": [], - "src": "6451:0:25" + "src": "2397:0:26" }, - "scope": 4000, - "src": "6382:124:25", + "scope": 3372, + "src": "2320:78:26", "stateMutability": "nonpayable", - "superFunction": 2974, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3362, - "nodeType": "Block", - "src": "6584:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3356, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "6607:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3358, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3352, - "src": "6628:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3357, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "6613:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:24:25", - "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": 3355, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6588:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6588:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3361, - "nodeType": "ExpressionStatement", - "src": "6588:50:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3363, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3332, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataReturnAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 3353, + "id": 3330, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3350, + "id": 3327, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6545:10:25", + "scope": 3332, + "src": "2436:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3349, + "id": 3326, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6545:5:25", + "src": "2436:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -20206,11 +15429,11 @@ }, { "constant": false, - "id": 3352, + "id": 3329, "name": "response", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6557:16:25", + "scope": 3332, + "src": "2457:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20218,10 +15441,11 @@ "typeString": "address" }, "typeName": { - "id": 3351, + "id": 3328, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6557:7:25", + "src": "2457:7:26", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20231,1512 +15455,51 @@ "visibility": "internal" } ], - "src": "6544:30:25" + "src": "2435:39:26" }, - "payable": false, "returnParameters": { - "id": 3354, + "id": 3331, "nodeType": "ParameterList", "parameters": [], - "src": "6584:0:25" + "src": "2483:0:26" }, - "scope": 4000, - "src": "6509:133:25", - "stateMutability": "nonpayable", - "superFunction": 2981, - "visibility": "external" - }, - { - "body": { - "id": 3393, - "nodeType": "Block", - "src": "6709:164:25", - "statements": [ - { - "assignments": [ - 3371 - ], - "declarations": [ - { - "constant": false, - "id": 3371, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6713:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3370, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "6713:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3375, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3373, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3365, - "src": "6743:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3372, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "6729:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6729:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6713:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3376, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "6752:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3378, - "indexExpression": { - "argumentTypes": null, - "id": 3377, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6770:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6752:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3379, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6780:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6780:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6752:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3382, - "nodeType": "ExpressionStatement", - "src": "6752:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3383, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "6799:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3385, - "indexExpression": { - "argumentTypes": null, - "id": 3384, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6820:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6799:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3386, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3367, - "src": "6830:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6799:39:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3388, - "nodeType": "ExpressionStatement", - "src": "6799:39:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3390, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6860:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3389, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "6842:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6842:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3392, - "nodeType": "ExpressionStatement", - "src": "6842:25:25" - } - ] - }, - "documentation": null, - "id": 3394, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3368, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3365, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6673:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3364, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6673:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3367, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6685:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3366, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6685:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6672:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3369, - "nodeType": "ParameterList", - "parameters": [], - "src": "6709:0:25" - }, - "scope": 4000, - "src": "6645:228:25", + "scope": 3372, + "src": "2400:84:26", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3406, - "nodeType": "Block", - "src": "6940:42:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3402, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "6963:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3403, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "6969:8:25", - "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": 3401, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6944:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6944:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3405, - "nodeType": "ExpressionStatement", - "src": "6944:34:25" - } - ] - }, - "documentation": null, - "id": 3407, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3396, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6903:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3395, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6903:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3398, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6915:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3397, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6915:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6902:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3400, - "nodeType": "ParameterList", - "parameters": [], - "src": "6940:0:25" - }, - "scope": 4000, - "src": "6876:106:25", - "stateMutability": "nonpayable", - "superFunction": 2915, "visibility": "external" }, { - "body": { - "id": 3428, - "nodeType": "Block", - "src": "7052:83:25", - "statements": [ - { - "assignments": [ - 3415 - ], - "declarations": [ - { - "constant": false, - "id": 3415, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7056:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3414, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7056:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3420, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3416, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3411, - "src": "7068:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7083:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "7068:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7079:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7056:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3422, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3409, - "src": "7107:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3424, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3415, - "src": "7125:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3423, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7113:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7113:17:25", - "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": 3421, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7088:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7088:43:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3427, - "nodeType": "ExpressionStatement", - "src": "7088:43:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3429, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3412, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3409, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7016:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3408, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7016:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3411, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7028:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3410, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7028:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7015:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3413, - "nodeType": "ParameterList", - "parameters": [], - "src": "7052:0:25" - }, - "scope": 4000, - "src": "6985:150:25", - "stateMutability": "nonpayable", - "superFunction": 2922, - "visibility": "external" - }, - { - "body": { - "id": 3443, - "nodeType": "Block", - "src": "7205:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3437, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3431, - "src": "7228:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3439, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3433, - "src": "7246:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3438, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7234:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7234:21:25", - "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": 3436, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7209:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7209:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3442, - "nodeType": "ExpressionStatement", - "src": "7209:47:25" - } - ] - }, - "documentation": null, - "id": 3444, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3434, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3431, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7169:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3430, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7169:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3433, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3432, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7168:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3435, - "nodeType": "ParameterList", - "parameters": [], - "src": "7205:0:25" - }, - "scope": 4000, - "src": "7138:122:25", - "stateMutability": "nonpayable", - "superFunction": 2929, - "visibility": "external" - }, - { - "body": { - "id": 3458, - "nodeType": "Block", - "src": "7336:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3452, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "7359:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3454, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3448, - "src": "7380:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3453, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "7365:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7365:24:25", - "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": 3451, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7340:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7340:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3457, - "nodeType": "ExpressionStatement", - "src": "7340:50:25" - } - ] - }, - "documentation": null, - "id": 3459, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7297:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3445, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7297:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3448, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7309:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3447, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7309:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7296:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3450, - "nodeType": "ParameterList", - "parameters": [], - "src": "7336:0:25" - }, - "scope": 4000, - "src": "7263:131:25", - "stateMutability": "nonpayable", - "superFunction": 2936, - "visibility": "external" - }, - { - "body": { - "id": 3481, - "nodeType": "Block", - "src": "7447:112:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3464, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7451:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3466, - "indexExpression": { - "argumentTypes": null, - "id": 3465, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7469:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7451:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3467, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7477:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7477:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7451:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3470, - "nodeType": "ExpressionStatement", - "src": "7451:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3471, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7496:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3473, - "indexExpression": { - "argumentTypes": null, - "id": 3472, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7518:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7496:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7526:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "7496:32:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3476, - "nodeType": "ExpressionStatement", - "src": "7496:32:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3478, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7550:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3477, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7532:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7532:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3480, - "nodeType": "ExpressionStatement", - "src": "7532:23:25" - } - ] - }, - "documentation": null, - "id": 3482, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3337, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataRevert", "nodeType": "FunctionDefinition", "parameters": { - "id": 3462, + "id": 3335, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3461, - "name": "call", + "id": 3334, + "name": "data", "nodeType": "VariableDeclaration", - "scope": 3482, - "src": "7426:10:25", + "scope": 3337, + "src": "2516:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3460, + "id": 3333, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7426:5:25", + "src": "2516:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -21746,565 +15509,51 @@ "visibility": "internal" } ], - "src": "7425:12:25" + "src": "2515:21:26" }, - "payable": false, "returnParameters": { - "id": 3463, + "id": 3336, "nodeType": "ParameterList", "parameters": [], - "src": "7447:0:25" + "src": "2545:0:26" }, - "scope": 4000, - "src": "7397:162:25", + "scope": 3372, + "src": "2487:59:26", "stateMutability": "nonpayable", - "superFunction": 2986, + "superFunction": null, "visibility": "external" }, { - "body": { - "id": 3504, - "nodeType": "Block", - "src": "7610:121:25", - "statements": [ - { - "assignments": [ - 3488 - ], - "declarations": [ - { - "constant": false, - "id": 3488, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7614:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3487, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7614:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3490, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3484, - "src": "7644:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3489, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "7630:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7630:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7614:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3493, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "7653:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3495, - "indexExpression": { - "argumentTypes": null, - "id": 3494, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7671:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7653:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3496, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7681:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7681:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7653:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3499, - "nodeType": "ExpressionStatement", - "src": "7653:43:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3501, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7718:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3500, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "7700:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7700:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "7700:25:25" - } - ] - }, + "body": null, "documentation": null, - "id": 3505, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3484, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7589:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3483, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7589:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7588:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3486, - "nodeType": "ParameterList", - "parameters": [], - "src": "7610:0:25" - }, - "scope": 4000, - "src": "7562:169:25", - "stateMutability": "nonpayable", - "superFunction": 2941, - "visibility": "external" - }, - { - "body": { - "id": 3529, - "nodeType": "Block", - "src": "7811:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3512, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7815:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3514, - "indexExpression": { - "argumentTypes": null, - "id": 3513, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7833:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7815:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3515, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7841:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7841:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7815:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3518, - "nodeType": "ExpressionStatement", - "src": "7815:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3519, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7860:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3521, - "indexExpression": { - "argumentTypes": null, - "id": 3520, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7882:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7860:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3522, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3509, - "src": "7890:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "7860:37:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3524, - "nodeType": "ExpressionStatement", - "src": "7860:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3526, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7919:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3525, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7901:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7901:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3528, - "nodeType": "ExpressionStatement", - "src": "7901:23:25" - } - ] - }, - "documentation": null, - "id": 3530, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "id": 3344, + "implemented": false, + "kind": "function", "modifiers": [], "name": "givenCalldataRevertWithMessage", "nodeType": "FunctionDefinition", "parameters": { - "id": 3510, + "id": 3342, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3507, - "name": "call", + "id": 3339, + "name": "data", "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7774:10:25", + "scope": 3344, + "src": "2588:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3506, + "id": 3338, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7774:5:25", + "src": "2588:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -22315,22 +15564,22 @@ }, { "constant": false, - "id": 3509, + "id": 3341, "name": "message", "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7786:14:25", + "scope": 3344, + "src": "2609:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string" }, "typeName": { - "id": 3508, + "id": 3340, "name": "string", "nodeType": "ElementaryTypeName", - "src": "7786:6:25", + "src": "2609:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -22340,71 +15589,2284 @@ "visibility": "internal" } ], - "src": "7773:28:25" + "src": "2587:46:26" }, - "payable": false, "returnParameters": { - "id": 3511, + "id": 3343, "nodeType": "ParameterList", "parameters": [], - "src": "7811:0:25" + "src": "2642:0:26" }, - "scope": 4000, - "src": "7734:194:25", + "scope": 3372, + "src": "2548:95:26", "stateMutability": "nonpayable", - "superFunction": 2993, + "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": 3560, + "id": 3457, "nodeType": "Block", - "src": "8006:165:25", + "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": [ - 3538 + 3464 ], "declarations": [ { "constant": false, - "id": 3538, - "name": "method", + "id": 3464, + "name": "callHash", "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "8010:13:25", + "scope": 3491, + "src": "4780:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 3537, - "name": "bytes4", + "id": 3463, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8010:6:25", + "src": "4780:7:26", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], - "id": 3542, + "id": 3468, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3540, + "id": 3466, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3532, - "src": "8040:4:25", + "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" @@ -22419,14 +17881,14 @@ } ], "id": 3539, - "name": "bytesToBytes4", + "name": "_givenAnyReturn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8026:13:25", + "referencedDeclaration": 3534, + "src": "5389:15:26", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" } }, "id": 3541, @@ -22437,60 +17899,644 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8026:19:25", + "src": "5389:25:26", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "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": "8010:35:25" + "src": "5477:28:26" }, { "expression": { "argumentTypes": null, - "id": 3548, + "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, - "baseExpression": { - "argumentTypes": null, - "id": 3543, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8049:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3545, - "indexExpression": { - "argumentTypes": null, - "id": 3544, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8067:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8049:25:25", + "id": 3590, + "name": "fallbackMockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3434, + "src": "5801:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -22500,18 +18546,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3546, + "id": 3591, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8077:8:25", + "referencedDeclaration": 3378, + "src": "5820:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3547, + "id": 3592, "isConstant": false, "isLValue": false, "isPure": true, @@ -22519,65 +18565,38 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8077:15:25", + "src": "5820:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "8049:43:25", + "src": "5801:34:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3549, + "id": 3594, "nodeType": "ExpressionStatement", - "src": "8049:43:25" + "src": "5801:34:26" }, { "expression": { "argumentTypes": null, - "id": 3554, + "id": 3597, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3550, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "8096:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3552, - "indexExpression": { - "argumentTypes": null, - "id": 3551, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8119:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8096:30:25", + "id": 3595, + "name": "fallbackRevertMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3438, + "src": "5839:21:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -22587,139 +18606,204 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3553, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "8129:7:25", + "hexValue": "", + "id": 3596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5863:2:26", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" }, - "src": "8096:40:25", + "src": "5839:26:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3555, + "id": 3598, "nodeType": "ExpressionStatement", - "src": "8096:40:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3557, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8158:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3556, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8140:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8140:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3559, - "nodeType": "ExpressionStatement", - "src": "8140:25:25" + "src": "5839:26:26" } ] }, "documentation": null, - "id": 3561, + "id": 3600, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "givenMethodRevertWithMessage", + "name": "givenAnyRevert", "nodeType": "FunctionDefinition", "parameters": { - "id": 3535, + "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": 3532, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7969:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3531, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7969:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3534, + "id": 3602, "name": "message", "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7981:14:25", + "scope": 3615, + "src": "5907:23:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string" }, "typeName": { - "id": 3533, + "id": 3601, "name": "string", "nodeType": "ElementaryTypeName", - "src": "7981:6:25", + "src": "5907:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -22729,72 +18813,44 @@ "visibility": "internal" } ], - "src": "7968:28:25" + "src": "5906:25:26" }, - "payable": false, "returnParameters": { - "id": 3536, + "id": 3604, "nodeType": "ParameterList", "parameters": [], - "src": "8006:0:25" + "src": "5941:0:26" }, - "scope": 4000, - "src": "7931:240:25", + "scope": 4351, + "src": "5872:146:26", "stateMutability": "nonpayable", - "superFunction": 2948, + "superFunction": 3256, "visibility": "external" }, { "body": { - "id": 3577, + "id": 3623, "nodeType": "Block", - "src": "8229:78:25", + "src": "6061:44:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3571, + "id": 3621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3566, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "8233:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3568, - "indexExpression": { - "argumentTypes": null, - "id": 3567, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8251:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8233:23:25", + "id": 3618, + "name": "fallbackMockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3434, + "src": "6065:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -22804,18 +18860,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3569, + "id": 3619, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8259:8:25", + "referencedDeclaration": 3378, + "src": "6084:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3570, + "id": 3620, "isConstant": false, "isLValue": false, "isPure": true, @@ -22823,21 +18879,216 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8259:17:25", + "src": "6084:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "8233:43:25", + "src": "6065:36:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3572, + "id": 3622, "nodeType": "ExpressionStatement", - "src": "8233:43:25" + "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": { @@ -22845,37 +19096,37 @@ "arguments": [ { "argumentTypes": null, - "id": 3574, + "id": 3645, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8298:4:25", + "referencedDeclaration": 3626, + "src": "6297:4:26", "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" + "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": 3573, + "id": 3644, "name": "trackCalldataMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "8280:17:25", + "referencedDeclaration": 3492, + "src": "6279:17:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 3575, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -22883,48 +19134,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8280:23:25", + "src": "6279:23:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3576, + "id": 3647, "nodeType": "ExpressionStatement", - "src": "8280:23:25" + "src": "6279:23:26" } ] }, "documentation": null, - "id": 3578, + "id": 3649, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "givenCalldataRunOutOfGas", + "name": "_givenCalldataReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 3564, + "id": 3629, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3563, + "id": 3626, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "8208:10:25", + "scope": 3649, + "src": "6138:17:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", + "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3562, + "id": 3625, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8208:5:25", + "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" @@ -22934,71 +19210,51 @@ "visibility": "internal" } ], - "src": "8207:12:25" + "src": "6137:42:26" }, - "payable": false, "returnParameters": { - "id": 3565, + "id": 3630, "nodeType": "ParameterList", "parameters": [], - "src": "8229:0:25" + "src": "6189:0:26" }, - "scope": 4000, - "src": "8174:133:25", + "scope": 4351, + "src": "6108:198:26", "stateMutability": "nonpayable", - "superFunction": 2998, - "visibility": "external" + "superFunction": null, + "visibility": "private" }, { "body": { - "id": 3600, + "id": 3661, "nodeType": "Block", - "src": "8363:122:25", + "src": "6394:44:26", "statements": [ { - "assignments": [ - 3584 - ], - "declarations": [ - { - "constant": false, - "id": 3584, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8367:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3583, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8367:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3588, - "initialValue": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3586, + "id": 3657, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3580, - "src": "8397:4:25", + "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" @@ -23007,23 +19263,27 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } ], - "id": 3585, - "name": "bytesToBytes4", + "id": 3656, + "name": "_givenCalldataReturn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8383:13:25", + "referencedDeclaration": 3649, + "src": "6398:20:26", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory,bytes memory)" } }, - "id": 3587, + "id": 3659, "isConstant": false, "isLValue": false, "isPure": false, @@ -23031,19 +19291,870 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8383:19:25", + "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": "8367:35:25" + "src": "6974:35:26" }, { "expression": { "argumentTypes": null, - "id": 3594, + "id": 3732, "isConstant": false, "isLValue": false, "isPure": false, @@ -23052,26 +20163,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3589, + "id": 3727, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8406:17:25", + "referencedDeclaration": 3420, + "src": "7013:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3591, + "id": 3729, "indexExpression": { "argumentTypes": null, - "id": 3590, + "id": 3728, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8424:6:25", + "referencedDeclaration": 3722, + "src": "7031:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -23082,9 +20193,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8406:25:25", + "src": "7013:25:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -23094,40 +20205,113 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3592, + "id": 3730, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8434:8:25", + "referencedDeclaration": 3378, + "src": "7041:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3593, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberName": "OutOfGas", + "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8434:17:25", + "src": "7041:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "8406:45:25", + "src": "7013:43:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3595, + "id": 3733, "nodeType": "ExpressionStatement", - "src": "8406:45:25" + "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": { @@ -23135,12 +20319,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3597, + "id": 3741, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8473:6:25", + "referencedDeclaration": 3722, + "src": "7121:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -23154,18 +20338,18 @@ "typeString": "bytes4" } ], - "id": 3596, + "id": 3740, "name": "trackMethodIdMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8455:17:25", + "referencedDeclaration": 3519, + "src": "7103:17:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, - "id": 3598, + "id": 3742, "isConstant": false, "isLValue": false, "isPure": false, @@ -23173,48 +20357,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8455:25:25", + "src": "7103:25:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3599, + "id": 3743, "nodeType": "ExpressionStatement", - "src": "8455:25:25" + "src": "7103:25:26" } ] }, "documentation": null, - "id": 3601, + "id": 3745, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "givenMethodRunOutOfGas", + "name": "_givenMethodReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 3581, + "id": 3719, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3580, + "id": 3716, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8342:10:25", + "scope": 3745, + "src": "6920:17:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", + "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3579, + "id": 3715, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8342:5:25", + "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" @@ -23224,74 +20433,628 @@ "visibility": "internal" } ], - "src": "8341:12:25" + "src": "6919:42:26" }, - "payable": false, "returnParameters": { - "id": 3582, + "id": 3720, "nodeType": "ParameterList", "parameters": [], - "src": "8363:0:25" + "src": "6970:0:26" }, - "scope": 4000, - "src": "8310:175:25", + "scope": 4351, + "src": "6892:242:26", "stateMutability": "nonpayable", - "superFunction": 2953, - "visibility": "external" + "superFunction": null, + "visibility": "private" }, { "body": { - "id": 3608, + "id": 3757, "nodeType": "Block", - "src": "8539:26:25", + "src": "7219:42:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3606, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "8550:11:25", + "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_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 3605, - "id": 3607, - "nodeType": "Return", - "src": "8543:18:25" + "id": 3756, + "nodeType": "ExpressionStatement", + "src": "7223:34:26" } ] }, "documentation": null, - "id": 3609, + "id": 3758, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], - "name": "invocationCount", + "name": "givenMethodReturn", "nodeType": "FunctionDefinition", "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "8512:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3605, + "id": 3750, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3604, - "name": "", + "id": 3747, + "name": "call", "nodeType": "VariableDeclaration", - "scope": 3609, - "src": "8533:4:25", + "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": { @@ -23299,10 +21062,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3603, + "id": 3783, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8533:4:25", + "src": "7478:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23312,32 +21075,513 @@ "visibility": "internal" } ], - "src": "8532:6:25" + "src": "7456:36:26" }, - "scope": 4000, - "src": "8488:77:25", + "returnParameters": { + "id": 3786, + "nodeType": "ParameterList", + "parameters": [], + "src": "7502:0:26" + }, + "scope": 4351, + "src": "7426:131:26", "stateMutability": "nonpayable", - "superFunction": 3003, + "superFunction": 3280, "visibility": "external" }, { "body": { - "id": 3632, + "id": 3809, "nodeType": "Block", - "src": "8638:122:25", + "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": [ - 3617 + 3839 ], "declarations": [ { "constant": false, - "id": 3617, + "id": 3839, "name": "method", "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8642:13:25", + "scope": 3855, + "src": "7938:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23345,10 +21589,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3616, + "id": 3838, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "8642:6:25", + "src": "7938:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -23358,18 +21602,18 @@ "visibility": "internal" } ], - "id": 3621, + "id": 3843, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3619, + "id": 3841, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "8672:4:25", + "referencedDeclaration": 3835, + "src": "7968:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -23383,18 +21627,18 @@ "typeString": "bytes calldata" } ], - "id": 3618, + "id": 3840, "name": "bytesToBytes4", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8658:13:25", + "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": 3620, + "id": 3842, "isConstant": false, "isLValue": false, "isPure": false, @@ -23402,32 +21646,1579 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8658:19:25", + "src": "7954:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", - "src": "8642:35:25" + "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": 3622, + "id": 3973, "name": "methodIdInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "8688:19:25", + "referencedDeclaration": 3432, + "src": "9075:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3630, + "id": 3981, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -23436,12 +23227,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3626, + "id": 3977, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8735:10:25", + "referencedDeclaration": 3442, + "src": "9122:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23449,12 +23240,12 @@ }, { "argumentTypes": null, - "id": 3627, + "id": 3978, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3617, - "src": "8747:6:25", + "referencedDeclaration": 3968, + "src": "9134:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -23474,18 +23265,18 @@ ], "expression": { "argumentTypes": null, - "id": 3624, + "id": 3975, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8718:3:25", + "referencedDeclaration": 4353, + "src": "9105:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3625, + "id": 3976, "isConstant": false, "isLValue": false, "isPure": true, @@ -23493,13 +23284,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8718:16:25", + "src": "9105:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3628, + "id": 3979, "isConstant": false, "isLValue": false, "isPure": false, @@ -23507,7 +23298,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8718:36:25", + "src": "9105:36:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -23521,18 +23312,18 @@ "typeString": "bytes memory" } ], - "id": 3623, + "id": 3974, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8708:9:25", + "referencedDeclaration": 4360, + "src": "9095:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3629, + "id": 3980, "isConstant": false, "isLValue": false, "isPure": false, @@ -23540,7 +23331,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8708:47:25", + "src": "9095:47:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23551,49 +23342,48 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8688:68:25", + "src": "9075:68:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3615, - "id": 3631, + "functionReturnParameters": 3966, + "id": 3982, "nodeType": "Return", - "src": "8681:75:25" + "src": "9068:75:26" } ] }, "documentation": null, - "id": 3633, + "id": 3984, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "invocationCountForMethod", "nodeType": "FunctionDefinition", "parameters": { - "id": 3612, + "id": 3963, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3611, + "id": 3962, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8602:10:25", + "scope": 3984, + "src": "8980:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3610, + "id": 3961, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8602:5:25", + "src": "8980:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -23603,20 +23393,19 @@ "visibility": "internal" } ], - "src": "8601:12:25" + "src": "8979:21:26" }, - "payable": false, "returnParameters": { - "id": 3615, + "id": 3966, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3614, + "id": 3965, "name": "", "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8632:4:25", + "scope": 3984, + "src": "9019:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23624,10 +23413,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3613, + "id": 3964, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8632:4:25", + "src": "9019:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23637,37 +23426,37 @@ "visibility": "internal" } ], - "src": "8631:6:25" + "src": "9018:6:26" }, - "scope": 4000, - "src": "8568:192:25", + "scope": 4351, + "src": "8946:201:26", "stateMutability": "nonpayable", - "superFunction": 3010, + "superFunction": 3361, "visibility": "external" }, { "body": { - "id": 3650, + "id": 4001, "nodeType": "Block", - "src": "8835:81:25", + "src": "9231:81:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3640, + "id": 3991, "name": "calldataInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "8846:19:25", + "referencedDeclaration": 3412, + "src": "9242:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3648, + "id": 3999, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -23676,12 +23465,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3644, + "id": 3995, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8893:10:25", + "referencedDeclaration": 3442, + "src": "9289:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23689,12 +23478,12 @@ }, { "argumentTypes": null, - "id": 3645, + "id": 3996, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3635, - "src": "8905:4:25", + "referencedDeclaration": 3986, + "src": "9301:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -23714,18 +23503,18 @@ ], "expression": { "argumentTypes": null, - "id": 3642, + "id": 3993, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8876:3:25", + "referencedDeclaration": 4353, + "src": "9272:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3643, + "id": 3994, "isConstant": false, "isLValue": false, "isPure": true, @@ -23733,13 +23522,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8876:16:25", + "src": "9272:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3646, + "id": 3997, "isConstant": false, "isLValue": false, "isPure": false, @@ -23747,7 +23536,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8876:34:25", + "src": "9272:34:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -23761,18 +23550,18 @@ "typeString": "bytes memory" } ], - "id": 3641, + "id": 3992, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8866:9:25", + "referencedDeclaration": 4360, + "src": "9262:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3647, + "id": 3998, "isConstant": false, "isLValue": false, "isPure": false, @@ -23780,7 +23569,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8866:45:25", + "src": "9262:45:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23791,49 +23580,48 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8846:66:25", + "src": "9242:66:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3639, - "id": 3649, + "functionReturnParameters": 3990, + "id": 4000, "nodeType": "Return", - "src": "8839:73:25" + "src": "9235:73:26" } ] }, "documentation": null, - "id": 3651, + "id": 4002, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "invocationCountForCalldata", "nodeType": "FunctionDefinition", "parameters": { - "id": 3636, + "id": 3987, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3635, + "id": 3986, "name": "call", "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8799:10:25", + "scope": 4002, + "src": "9186:19:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { - "id": 3634, + "id": 3985, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8799:5:25", + "src": "9186:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -23843,20 +23631,19 @@ "visibility": "internal" } ], - "src": "8798:12:25" + "src": "9185:21:26" }, - "payable": false, "returnParameters": { - "id": 3639, + "id": 3990, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3638, + "id": 3989, "name": "", "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8829:4:25", + "scope": 4002, + "src": "9225:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23864,10 +23651,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3637, + "id": 3988, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8829:4:25", + "src": "9225:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23877,32 +23664,32 @@ "visibility": "internal" } ], - "src": "8828:6:25" + "src": "9224:6:26" }, - "scope": 4000, - "src": "8763:153:25", + "scope": 4351, + "src": "9150:162:26", "stateMutability": "nonpayable", - "superFunction": 3017, + "superFunction": 3368, "visibility": "external" }, { "body": { - "id": 3783, + "id": 4134, "nodeType": "Block", - "src": "8945:1265:25", + "src": "9341:1265:26", "statements": [ { "assignments": [ - 3655 + 4006 ], "declarations": [ { "constant": false, - "id": 3655, + "id": 4006, "name": "nextMock", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "8984:21:25", + "scope": 4134, + "src": "9380:21:26", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -23910,10 +23697,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3654, + "id": 4005, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8984:5:25", + "src": "9380:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -23923,31 +23710,31 @@ "visibility": "internal" } ], - "id": 3659, + "id": 4010, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3656, + "id": 4007, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9008:13:25", + "referencedDeclaration": 3396, + "src": "9404:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3658, + "id": 4009, "indexExpression": { "argumentTypes": null, - "id": 3657, + "id": 4008, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9022:16:25", + "referencedDeclaration": 3381, + "src": "9418:16:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23958,27 +23745,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9008:31:25", + "src": "9404:31:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "8984:55:25" + "src": "9380:55:26" }, { "assignments": [ - 3661 + 4012 ], "declarations": [ { "constant": false, - "id": 3661, + "id": 4012, "name": "mockHash", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9043:16:25", + "scope": 4134, + "src": "9439:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23986,10 +23773,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3660, + "id": 4011, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9043:7:25", + "src": "9439:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23999,18 +23786,18 @@ "visibility": "internal" } ], - "id": 3665, + "id": 4016, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3663, + "id": 4014, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9072:8:25", + "referencedDeclaration": 4006, + "src": "9468:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -24024,18 +23811,18 @@ "typeString": "bytes memory" } ], - "id": 3662, + "id": 4013, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9062:9:25", + "referencedDeclaration": 4360, + "src": "9458:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3664, + "id": 4015, "isConstant": false, "isLValue": false, "isPure": false, @@ -24043,25 +23830,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9062:19:25", + "src": "9458:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "9043:38:25" + "src": "9439:38:26" }, { "body": { - "id": 3706, + "id": 4057, "nodeType": "Block", - "src": "9153:355:25", + "src": "9549:355:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3674, + "id": 4025, "isConstant": false, "isLValue": false, "isPure": false, @@ -24070,26 +23857,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3669, + "id": 4020, "name": "calldataMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "9184:17:25", + "referencedDeclaration": 3400, + "src": "9580:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, - "id": 3671, + "id": 4022, "indexExpression": { "argumentTypes": null, - "id": 3670, + "id": 4021, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9202:8:25", + "referencedDeclaration": 4006, + "src": "9598:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -24100,9 +23887,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9184:27:25", + "src": "9580:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -24112,18 +23899,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3672, + "id": 4023, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9214:8:25", + "referencedDeclaration": 3378, + "src": "9610:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3673, + "id": 4024, "isConstant": false, "isLValue": false, "isPure": true, @@ -24131,26 +23918,26 @@ "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9214:15:25", + "src": "9610:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "9184:45:25", + "src": "9580:45:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3675, + "id": 4026, "nodeType": "ExpressionStatement", - "src": "9184:45:25" + "src": "9580:45:26" }, { "expression": { "argumentTypes": null, - "id": 3680, + "id": 4031, "isConstant": false, "isLValue": false, "isPure": false, @@ -24159,26 +23946,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3676, + "id": 4027, "name": "calldataExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "9234:20:25", + "referencedDeclaration": 3404, + "src": "9630:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes memory => bytes storage ref)" } }, - "id": 3678, + "id": 4029, "indexExpression": { "argumentTypes": null, - "id": 3677, + "id": 4028, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9255:8:25", + "referencedDeclaration": 4006, + "src": "9651:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -24189,7 +23976,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9234:30:25", + "src": "9630:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -24200,14 +23987,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3679, + "id": 4030, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9267:5:25", + "src": "9663:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -24215,20 +24002,20 @@ }, "value": "" }, - "src": "9234:38:25", + "src": "9630:38:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3681, + "id": 4032, "nodeType": "ExpressionStatement", - "src": "9234:38:25" + "src": "9630:38:26" }, { "expression": { "argumentTypes": null, - "id": 3686, + "id": 4037, "isConstant": false, "isLValue": false, "isPure": false, @@ -24237,26 +24024,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3682, + "id": 4033, "name": "calldataRevertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "9277:21:25", + "referencedDeclaration": 3408, + "src": "9673:21:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, - "id": 3684, + "id": 4035, "indexExpression": { "argumentTypes": null, - "id": 3683, + "id": 4034, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9299:8:25", + "referencedDeclaration": 4006, + "src": "9695:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -24267,7 +24054,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9277:31:25", + "src": "9673:31:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -24278,14 +24065,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3685, + "id": 4036, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9311:2:25", + "src": "9707:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -24293,32 +24080,32 @@ }, "value": "" }, - "src": "9277:36:25", + "src": "9673:36:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3687, + "id": 4038, "nodeType": "ExpressionStatement", - "src": "9277:36:25" + "src": "9673:36:26" }, { "expression": { "argumentTypes": null, - "id": 3692, + "id": 4043, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3688, + "id": 4039, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9348:8:25", + "referencedDeclaration": 4006, + "src": "9744:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -24330,26 +24117,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3689, + "id": 4040, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9359:13:25", + "referencedDeclaration": 3396, + "src": "9755:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3691, + "id": 4042, "indexExpression": { "argumentTypes": null, - "id": 3690, + "id": 4041, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9373:8:25", + "referencedDeclaration": 4012, + "src": "9769:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24360,26 +24147,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9359:23:25", + "src": "9755:23:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "src": "9348:34:25", + "src": "9744:34:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3693, + "id": 4044, "nodeType": "ExpressionStatement", - "src": "9348:34:25" + "src": "9744:34:26" }, { "expression": { "argumentTypes": null, - "id": 3698, + "id": 4049, "isConstant": false, "isLValue": false, "isPure": false, @@ -24388,26 +24175,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3694, + "id": 4045, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9417:13:25", + "referencedDeclaration": 3396, + "src": "9813:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3696, + "id": 4047, "indexExpression": { "argumentTypes": null, - "id": 3695, + "id": 4046, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9431:8:25", + "referencedDeclaration": 4012, + "src": "9827:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24418,7 +24205,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9417:23:25", + "src": "9813:23:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -24429,14 +24216,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3697, + "id": 4048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9443:2:25", + "src": "9839:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -24444,32 +24231,32 @@ }, "value": "" }, - "src": "9417:28:25", + "src": "9813:28:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3699, + "id": 4050, "nodeType": "ExpressionStatement", - "src": "9417:28:25" + "src": "9813:28:26" }, { "expression": { "argumentTypes": null, - "id": 3704, + "id": 4055, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3700, + "id": 4051, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9473:8:25", + "referencedDeclaration": 4012, + "src": "9869:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24482,12 +24269,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3702, + "id": 4053, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9494:8:25", + "referencedDeclaration": 4006, + "src": "9890:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -24501,18 +24288,18 @@ "typeString": "bytes memory" } ], - "id": 3701, + "id": 4052, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9484:9:25", + "referencedDeclaration": 4360, + "src": "9880:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3703, + "id": 4054, "isConstant": false, "isLValue": false, "isPure": false, @@ -24520,21 +24307,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9484:19:25", + "src": "9880:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "9473:30:25", + "src": "9869:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 3705, + "id": 4056, "nodeType": "ExpressionStatement", - "src": "9473:30:25" + "src": "9869:30:26" } ] }, @@ -24544,19 +24331,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 3668, + "id": 4019, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3666, + "id": 4017, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9120:8:25", + "referencedDeclaration": 4012, + "src": "9516:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24566,31 +24353,31 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 3667, + "id": 4018, "name": "MOCKS_LIST_END_HASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "9132:19:25", + "referencedDeclaration": 3389, + "src": "9528:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "9120:31:25", + "src": "9516:31:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3707, + "id": 4058, "nodeType": "WhileStatement", - "src": "9114:394:25" + "src": "9510:394:26" }, { "expression": { "argumentTypes": null, - "id": 3712, + "id": 4063, "isConstant": false, "isLValue": false, "isPure": false, @@ -24599,26 +24386,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3708, + "id": 4059, "name": "calldataMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9527:13:25", + "referencedDeclaration": 3396, + "src": "9923:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, - "id": 3710, + "id": 4061, "indexExpression": { "argumentTypes": null, - "id": 3709, + "id": 4060, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9541:16:25", + "referencedDeclaration": 3381, + "src": "9937:16:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24629,7 +24416,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9527:31:25", + "src": "9923:31:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -24639,39 +24426,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3711, + "id": 4062, "name": "MOCKS_LIST_END", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "9561:14:25", + "referencedDeclaration": 3384, + "src": "9957:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } }, - "src": "9527:48:25", + "src": "9923:48:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3713, + "id": 4064, "nodeType": "ExpressionStatement", - "src": "9527:48:25" + "src": "9923:48:26" }, { "assignments": [ - 3715 + 4066 ], "declarations": [ { "constant": false, - "id": 3715, + "id": 4066, "name": "nextAnyMock", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9613:18:25", + "scope": 4134, + "src": "10009:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24679,10 +24466,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3714, + "id": 4065, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "9613:6:25", + "src": "10009:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -24692,31 +24479,31 @@ "visibility": "internal" } ], - "id": 3719, + "id": 4070, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3716, + "id": 4067, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9634:13:25", + "referencedDeclaration": 3416, + "src": "10030:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3718, + "id": 4069, "indexExpression": { "argumentTypes": null, - "id": 3717, + "id": 4068, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9648:18:25", + "referencedDeclaration": 3392, + "src": "10044:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -24727,33 +24514,33 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9634:33:25", + "src": "10030:33:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", - "src": "9613:54:25" + "src": "10009:54:26" }, { "body": { - "id": 3758, + "id": 4109, "nodeType": "Block", - "src": "9712:316:25", + "src": "10108:316:26", "statements": [ { "assignments": [ - 3724 + 4075 ], "declarations": [ { "constant": false, - "id": 3724, + "id": 4075, "name": "currentAnyMock", "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9717:21:25", + "scope": 4109, + "src": "10113:21:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24761,10 +24548,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3723, + "id": 4074, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "9717:6:25", + "src": "10113:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -24774,27 +24561,27 @@ "visibility": "internal" } ], - "id": 3726, + "id": 4077, "initialValue": { "argumentTypes": null, - "id": 3725, + "id": 4076, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9741:11:25", + "referencedDeclaration": 4066, + "src": "10137:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", - "src": "9717:35:25" + "src": "10113:35:26" }, { "expression": { "argumentTypes": null, - "id": 3732, + "id": 4083, "isConstant": false, "isLValue": false, "isPure": false, @@ -24803,26 +24590,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3727, + "id": 4078, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "9757:17:25", + "referencedDeclaration": 3420, + "src": "10153:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3729, + "id": 4080, "indexExpression": { "argumentTypes": null, - "id": 3728, + "id": 4079, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9775:14:25", + "referencedDeclaration": 4075, + "src": "10171:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -24833,9 +24620,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9757:33:25", + "src": "10153:33:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -24845,18 +24632,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3730, + "id": 4081, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9793:8:25", + "referencedDeclaration": 3378, + "src": "10189:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3731, + "id": 4082, "isConstant": false, "isLValue": false, "isPure": true, @@ -24864,26 +24651,26 @@ "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9793:15:25", + "src": "10189:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "9757:51:25", + "src": "10153:51:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3733, + "id": 4084, "nodeType": "ExpressionStatement", - "src": "9757:51:25" + "src": "10153:51:26" }, { "expression": { "argumentTypes": null, - "id": 3738, + "id": 4089, "isConstant": false, "isLValue": false, "isPure": false, @@ -24892,26 +24679,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3734, + "id": 4085, "name": "methodIdExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "9813:20:25", + "referencedDeclaration": 3424, + "src": "10209:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes storage ref)" } }, - "id": 3736, + "id": 4087, "indexExpression": { "argumentTypes": null, - "id": 3735, + "id": 4086, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9834:14:25", + "referencedDeclaration": 4075, + "src": "10230:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -24922,7 +24709,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9813:36:25", + "src": "10209:36:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -24933,14 +24720,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3737, + "id": 4088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9852:5:25", + "src": "10248:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -24948,20 +24735,20 @@ }, "value": "" }, - "src": "9813:44:25", + "src": "10209:44:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3739, + "id": 4090, "nodeType": "ExpressionStatement", - "src": "9813:44:25" + "src": "10209:44:26" }, { "expression": { "argumentTypes": null, - "id": 3744, + "id": 4095, "isConstant": false, "isLValue": false, "isPure": false, @@ -24970,26 +24757,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3740, + "id": 4091, "name": "methodIdRevertMessages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "9862:22:25", + "referencedDeclaration": 3428, + "src": "10258:22:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string storage ref)" } }, - "id": 3742, + "id": 4093, "indexExpression": { "argumentTypes": null, - "id": 3741, + "id": 4092, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9885:14:25", + "referencedDeclaration": 4075, + "src": "10281:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25000,7 +24787,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9862:38:25", + "src": "10258:38:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -25011,14 +24798,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3743, + "id": 4094, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9903:2:25", + "src": "10299:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -25026,32 +24813,32 @@ }, "value": "" }, - "src": "9862:43:25", + "src": "10258:43:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3745, + "id": 4096, "nodeType": "ExpressionStatement", - "src": "9862:43:25" + "src": "10258:43:26" }, { "expression": { "argumentTypes": null, - "id": 3750, + "id": 4101, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3746, + "id": 4097, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9910:11:25", + "referencedDeclaration": 4066, + "src": "10306:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25063,26 +24850,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3747, + "id": 4098, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9924:13:25", + "referencedDeclaration": 3416, + "src": "10320:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3749, + "id": 4100, "indexExpression": { "argumentTypes": null, - "id": 3748, + "id": 4099, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9938:14:25", + "referencedDeclaration": 4075, + "src": "10334:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25093,26 +24880,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9924:29:25", + "src": "10320:29:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "9910:43:25", + "src": "10306:43:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3751, + "id": 4102, "nodeType": "ExpressionStatement", - "src": "9910:43:25" + "src": "10306:43:26" }, { "expression": { "argumentTypes": null, - "id": 3756, + "id": 4107, "isConstant": false, "isLValue": false, "isPure": false, @@ -25121,26 +24908,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3752, + "id": 4103, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9988:13:25", + "referencedDeclaration": 3416, + "src": "10384:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3754, + "id": 4105, "indexExpression": { "argumentTypes": null, - "id": 3753, + "id": 4104, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "10002:14:25", + "referencedDeclaration": 4075, + "src": "10398:14:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25151,7 +24938,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9988:29:25", + "src": "10384:29:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25162,14 +24949,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "307830", - "id": 3755, + "id": 4106, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10020:3:25", + "src": "10416:3:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -25177,15 +24964,15 @@ }, "value": "0x0" }, - "src": "9988:35:25", + "src": "10384:35:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3757, + "id": 4108, "nodeType": "ExpressionStatement", - "src": "9988:35:25" + "src": "10384:35:26" } ] }, @@ -25195,19 +24982,19 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 3722, + "id": 4073, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3720, + "id": 4071, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9677:11:25", + "referencedDeclaration": 4066, + "src": "10073:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25217,31 +25004,31 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 3721, + "id": 4072, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9692:18:25", + "referencedDeclaration": 3392, + "src": "10088:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "9677:33:25", + "src": "10073:33:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3759, + "id": 4110, "nodeType": "WhileStatement", - "src": "9671:357:25" + "src": "10067:357:26" }, { "expression": { "argumentTypes": null, - "id": 3764, + "id": 4115, "isConstant": false, "isLValue": false, "isPure": false, @@ -25250,26 +25037,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3760, + "id": 4111, "name": "methodIdMocks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "10047:13:25", + "referencedDeclaration": 3416, + "src": "10443:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, - "id": 3762, + "id": 4113, "indexExpression": { "argumentTypes": null, - "id": 3761, + "id": 4112, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10061:18:25", + "referencedDeclaration": 3392, + "src": "10457:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25280,7 +25067,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "10047:33:25", + "src": "10443:33:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25290,43 +25077,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3763, + "id": 4114, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10083:18:25", + "referencedDeclaration": 3392, + "src": "10479:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "10047:54:25", + "src": "10443:54:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3765, + "id": 4116, "nodeType": "ExpressionStatement", - "src": "10047:54:25" + "src": "10443:54:26" }, { "expression": { "argumentTypes": null, - "id": 3768, + "id": 4119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3766, + "id": 4117, "name": "fallbackExpectation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "10106:19:25", + "referencedDeclaration": 3436, + "src": "10502:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -25337,14 +25124,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "", - "id": 3767, + "id": 4118, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10128:2:25", + "src": "10524:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -25352,34 +25139,34 @@ }, "value": "" }, - "src": "10106:24:25", + "src": "10502:24:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 3769, + "id": 4120, "nodeType": "ExpressionStatement", - "src": "10106:24:25" + "src": "10502:24:26" }, { "expression": { "argumentTypes": null, - "id": 3773, + "id": 4124, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3770, + "id": 4121, "name": "fallbackMockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "10134:16:25", + "referencedDeclaration": 3434, + "src": "10530:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -25389,18 +25176,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3771, + "id": 4122, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "10153:8:25", + "referencedDeclaration": 3378, + "src": "10549:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3772, + "id": 4123, "isConstant": false, "isLValue": false, "isPure": true, @@ -25408,38 +25195,38 @@ "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10153:15:25", + "src": "10549:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "10134:34:25", + "src": "10530:34:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "id": 3774, + "id": 4125, "nodeType": "ExpressionStatement", - "src": "10134:34:25" + "src": "10530:34:26" }, { "expression": { "argumentTypes": null, - "id": 3777, + "id": 4128, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3775, + "id": 4126, "name": "invocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "10172:11:25", + "referencedDeclaration": 3440, + "src": "10568:11:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25450,14 +25237,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 3776, + "id": 4127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10186:1:25", + "src": "10582:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -25465,32 +25252,32 @@ }, "value": "0" }, - "src": "10172:15:25", + "src": "10568:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3778, + "id": 4129, "nodeType": "ExpressionStatement", - "src": "10172:15:25" + "src": "10568:15:26" }, { "expression": { "argumentTypes": null, - "id": 3781, + "id": 4132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3779, + "id": 4130, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "10191:10:25", + "referencedDeclaration": 3442, + "src": "10587:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25501,14 +25288,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3780, + "id": 4131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10205:1:25", + "src": "10601:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -25516,67 +25303,67 @@ }, "value": "1" }, - "src": "10191:15:25", + "src": "10587:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3782, + "id": 4133, "nodeType": "ExpressionStatement", - "src": "10191:15:25" + "src": "10587:15:26" } ] }, "documentation": null, - "id": 3784, + "id": 4135, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "reset", "nodeType": "FunctionDefinition", "parameters": { - "id": 3652, + "id": 4003, "nodeType": "ParameterList", "parameters": [], - "src": "8933:2:25" + "src": "9329:2:26" }, - "payable": false, "returnParameters": { - "id": 3653, + "id": 4004, "nodeType": "ParameterList", "parameters": [], - "src": "8945:0:25" + "src": "9341:0:26" }, - "scope": 4000, - "src": "8919:1291:25", + "scope": 4351, + "src": "9315:1291:26", "stateMutability": "nonpayable", - "superFunction": 3020, + "superFunction": 3371, "visibility": "external" }, { "body": { - "id": 3794, + "id": 4145, "nodeType": "Block", - "src": "10242:157:25", + "src": "10638:157:26", "statements": [ { "body": { - "id": 3792, + "id": 4143, "nodeType": "Block", - "src": "10258:138:25", + "src": "10654:138:26", "statements": [ { - "assignments": [], + "assignments": [ + 4140 + ], "declarations": [ { "constant": false, - "id": 3789, + "id": 4140, "name": "s", "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "10263:6:25", + "scope": 4143, + "src": "10659:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25584,10 +25371,10 @@ "typeString": "bool" }, "typeName": { - "id": 3788, + "id": 4139, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "10263:4:25", + "src": "10659:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25597,41 +25384,41 @@ "visibility": "internal" } ], - "id": 3790, + "id": 4141, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "10263:6:25" + "src": "10659:6:26" }, { "externalReferences": [ { "s": { - "declaration": 3789, + "declaration": 4140, "isOffset": false, "isSlot": false, - "src": "10334:1:25", + "src": "10730:1:26", "valueSize": 1 } } ], - "id": 3791, + "id": 4142, "nodeType": "InlineAssembly", "operations": "{\n s := call(sub(gas(), 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n}", - "src": "10274:122:25" + "src": "10670:122:26" } ] }, "condition": { "argumentTypes": null, "hexValue": "74727565", - "id": 3787, + "id": 4138, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10252:4:25", + "src": "10648:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -25639,55 +25426,55 @@ }, "value": "true" }, - "id": 3793, + "id": 4144, "nodeType": "WhileStatement", - "src": "10246:150:25" + "src": "10642:150:26" } ] }, "documentation": null, - "id": 3795, + "id": 4146, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "useAllGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 3785, + "id": 4136, "nodeType": "ParameterList", "parameters": [], - "src": "10231:2:25" + "src": "10627:2:26" }, - "payable": false, "returnParameters": { - "id": 3786, + "id": 4137, "nodeType": "ParameterList", "parameters": [], - "src": "10242:0:25" + "src": "10638:0:26" }, - "scope": 4000, - "src": "10213:186:25", + "scope": 4351, + "src": "10609:186:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3834, + "id": 4185, "nodeType": "Block", - "src": "10464:122:25", + "src": "10867:122:26", "statements": [ { - "assignments": [], + "assignments": [ + 4154 + ], "declarations": [ { "constant": false, - "id": 3803, + "id": 4154, "name": "out", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10470:10:25", + "scope": 4185, + "src": "10873:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25695,10 +25482,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3802, + "id": 4153, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "10470:6:25", + "src": "10873:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25708,33 +25495,33 @@ "visibility": "internal" } ], - "id": 3804, + "id": 4155, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "10470:10:25" + "src": "10873:10:26" }, { "body": { - "id": 3830, + "id": 4181, "nodeType": "Block", - "src": "10515:52:25", + "src": "10918:52:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3828, + "id": 4179, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3815, + "id": 4166, "name": "out", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10523:3:25", + "referencedDeclaration": 4154, + "src": "10926:3:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25748,7 +25535,7 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 3827, + "id": 4178, "isConstant": false, "isLValue": false, "isPure": false, @@ -25762,7 +25549,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 3821, + "id": 4172, "isConstant": false, "isLValue": false, "isPure": false, @@ -25771,26 +25558,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3817, + "id": 4168, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "10537:1:25", + "referencedDeclaration": 4148, + "src": "10940:1:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3819, + "id": 4170, "indexExpression": { "argumentTypes": null, - "id": 3818, + "id": 4169, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10539:1:25", + "referencedDeclaration": 4157, + "src": "10942:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25801,7 +25588,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10537:4:25", + "src": "10940:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -25812,14 +25599,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30784646", - "id": 3820, + "id": 4171, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10544:4:25", + "src": "10947:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", @@ -25827,7 +25614,7 @@ }, "value": "0xFF" }, - "src": "10537:11:25", + "src": "10940:11:26", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -25841,20 +25628,20 @@ "typeString": "bytes1" } ], - "id": 3816, + "id": 4167, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10530:6:25", + "src": "10933:6:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes4_$", "typeString": "type(bytes4)" }, "typeName": "bytes4" }, - "id": 3822, + "id": 4173, "isConstant": false, "isLValue": false, "isPure": false, @@ -25862,7 +25649,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10530:19:25", + "src": "10933:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -25879,19 +25666,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3825, + "id": 4176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3823, + "id": 4174, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10554:1:25", + "referencedDeclaration": 4157, + "src": "10957:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25902,14 +25689,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "38", - "id": 3824, + "id": 4175, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10558:1:25", + "src": "10961:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", @@ -25917,41 +25704,41 @@ }, "value": "8" }, - "src": "10554:5:25", + "src": "10957:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3826, + "id": 4177, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10553:7:25", + "src": "10956:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10530:30:25", + "src": "10933:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "10523:37:25", + "src": "10926:37:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 3829, + "id": 4180, "nodeType": "ExpressionStatement", - "src": "10523:37:25" + "src": "10926:37:26" } ] }, @@ -25961,19 +25748,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3811, + "id": 4162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3809, + "id": 4160, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10503:1:25", + "referencedDeclaration": 4157, + "src": "10906:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25984,14 +25771,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "34", - "id": 3810, + "id": 4161, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10507:1:25", + "src": "10910:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -25999,25 +25786,25 @@ }, "value": "4" }, - "src": "10503:5:25", + "src": "10906:5:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3831, + "id": 4182, "initializationExpression": { "assignments": [ - 3806 + 4157 ], "declarations": [ { "constant": false, - "id": 3806, + "id": 4157, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10491:6:25", + "scope": 4182, + "src": "10894:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26025,10 +25812,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3805, + "id": 4156, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10491:4:25", + "src": "10894:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26038,18 +25825,18 @@ "visibility": "internal" } ], - "id": 3808, + "id": 4159, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 3807, + "id": 4158, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10500:1:25", + "src": "10903:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -26058,12 +25845,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "10491:10:25" + "src": "10894:10:26" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 3813, + "id": 4164, "isConstant": false, "isLValue": false, "isPure": false, @@ -26071,15 +25858,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "10510:3:25", + "src": "10913:3:26", "subExpression": { "argumentTypes": null, - "id": 3812, + "id": 4163, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10510:1:25", + "referencedDeclaration": 4157, + "src": "10913:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26090,64 +25877,63 @@ "typeString": "uint256" } }, - "id": 3814, + "id": 4165, "nodeType": "ExpressionStatement", - "src": "10510:3:25" + "src": "10913:3:26" }, "nodeType": "ForStatement", - "src": "10486:81:25" + "src": "10889:81:26" }, { "expression": { "argumentTypes": null, - "id": 3832, + "id": 4183, "name": "out", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10579:3:25", + "referencedDeclaration": 4154, + "src": "10982:3:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "functionReturnParameters": 3801, - "id": 3833, + "functionReturnParameters": 4152, + "id": 4184, "nodeType": "Return", - "src": "10572:10:25" + "src": "10975:10:26" } ] }, "documentation": null, - "id": 3835, + "id": 4186, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "bytesToBytes4", "nodeType": "FunctionDefinition", "parameters": { - "id": 3798, + "id": 4149, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3797, + "id": 4148, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10425:7:25", + "scope": 4186, + "src": "10821:14:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3796, + "id": 4147, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10425:5:25", + "src": "10821:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -26157,20 +25943,19 @@ "visibility": "internal" } ], - "src": "10424:9:25" + "src": "10820:16:26" }, - "payable": false, "returnParameters": { - "id": 3801, + "id": 4152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3800, + "id": 4151, "name": "", "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10456:6:25", + "scope": 4186, + "src": "10859:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26178,10 +25963,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3799, + "id": 4150, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "10456:6:25", + "src": "10859:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -26191,67 +25976,66 @@ "visibility": "internal" } ], - "src": "10455:8:25" + "src": "10858:8:26" }, - "scope": 4000, - "src": "10402:184:25", + "scope": 4351, + "src": "10798:191:26", "stateMutability": "pure", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3843, + "id": 4194, "nodeType": "Block", - "src": "10654:189:25", + "src": "11064:189:26", "statements": [ { "externalReferences": [ { "b": { - "declaration": 3840, + "declaration": 4191, "isOffset": false, "isSlot": false, - "src": "10827:1:25", + "src": "11237:1:26", "valueSize": 1 } }, { "a": { - "declaration": 3837, + "declaration": 4188, "isOffset": false, "isSlot": false, - "src": "10780:1:25", + "src": "11190:1:26", "valueSize": 1 } } ], - "id": 3842, + "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": "10661:182:25" + "src": "11071:182:26" } ] }, "documentation": null, - "id": 3844, + "id": 4195, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "addressToBytes", "nodeType": "FunctionDefinition", "parameters": { - "id": 3838, + "id": 4189, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3837, + "id": 4188, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10613:9:25", + "scope": 4195, + "src": "11016:9:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26259,10 +26043,11 @@ "typeString": "address" }, "typeName": { - "id": 3836, + "id": 4187, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10613:7:25", + "src": "11016:7:26", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26272,31 +26057,30 @@ "visibility": "internal" } ], - "src": "10612:11:25" + "src": "11015:11:26" }, - "payable": false, "returnParameters": { - "id": 3841, + "id": 4192, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3840, + "id": 4191, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10646:7:25", + "scope": 4195, + "src": "11049:14:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3839, + "id": 4190, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10646:5:25", + "src": "11049:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -26306,36 +26090,36 @@ "visibility": "internal" } ], - "src": "10645:9:25" + "src": "11048:16:26" }, - "scope": 4000, - "src": "10589:254:25", + "scope": 4351, + "src": "10992:261:26", "stateMutability": "pure", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3859, + "id": 4210, "nodeType": "Block", - "src": "10909:68:25", + "src": "11326:68:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3856, + "id": 4207, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3851, + "id": 4202, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3849, - "src": "10916:1:25", + "referencedDeclaration": 4200, + "src": "11333:1:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -26349,14 +26133,14 @@ { "argumentTypes": null, "hexValue": "3332", - "id": 3854, + "id": 4205, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10930:2:25", + "src": "11347:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -26372,29 +26156,29 @@ "typeString": "int_const 32" } ], - "id": 3853, + "id": 4204, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "10920:9:25", + "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": 3852, + "id": 4203, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10924:5:25", + "src": "11341:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, - "id": 3855, + "id": 4206, "isConstant": false, "isLValue": false, "isPure": true, @@ -26402,69 +26186,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10920:13:25", + "src": "11337:13:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } }, - "src": "10916:17:25", + "src": "11333:17:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3857, + "id": 4208, "nodeType": "ExpressionStatement", - "src": "10916:17:25" + "src": "11333:17:26" }, { "externalReferences": [ { "x": { - "declaration": 3846, + "declaration": 4197, "isOffset": false, "isSlot": false, - "src": "10970:1:25", + "src": "11387:1:26", "valueSize": 1 } }, { "b": { - "declaration": 3849, + "declaration": 4200, "isOffset": false, "isSlot": false, - "src": "10962:1:25", + "src": "11379:1:26", "valueSize": 1 } } ], - "id": 3858, + "id": 4209, "nodeType": "InlineAssembly", "operations": "{\n mstore(add(b, 32), x)\n}", - "src": "10940:37:25" + "src": "11357:37:26" } ] }, "documentation": null, - "id": 3860, + "id": 4211, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "uintToBytes", "nodeType": "FunctionDefinition", "parameters": { - "id": 3847, + "id": 4198, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3846, + "id": 4197, "name": "x", "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10867:9:25", + "scope": 4211, + "src": "11277:9:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26472,10 +26255,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3845, + "id": 4196, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10867:7:25", + "src": "11277:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26485,31 +26268,30 @@ "visibility": "internal" } ], - "src": "10866:11:25" + "src": "11276:11:26" }, - "payable": false, "returnParameters": { - "id": 3850, + "id": 4201, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3849, + "id": 4200, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10900:7:25", + "scope": 4211, + "src": "11310:14:26", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 3848, + "id": 4199, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10900:5:25", + "src": "11310:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -26519,30 +26301,32 @@ "visibility": "internal" } ], - "src": "10899:9:25" + "src": "11309:16:26" }, - "scope": 4000, - "src": "10846:131:25", + "scope": 4351, + "src": "11256:138:26", "stateMutability": "pure", "superFunction": null, "visibility": "private" }, { "body": { - "id": 3998, + "id": 4349, "nodeType": "Block", - "src": "11008:1178:25", + "src": "11425:1178:26", "statements": [ { - "assignments": [], + "assignments": [ + 4215 + ], "declarations": [ { "constant": false, - "id": 3864, + "id": 4215, "name": "methodId", "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11012:15:25", + "scope": 4349, + "src": "11429:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26550,10 +26334,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 3863, + "id": 4214, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "11012:6:25", + "src": "11429:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -26563,36 +26347,36 @@ "visibility": "internal" } ], - "id": 3865, + "id": 4216, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "11012:15:25" + "src": "11429:15:26" }, { "externalReferences": [ { "methodId": { - "declaration": 3864, + "declaration": 4215, "isOffset": false, "isSlot": false, - "src": "11045:8:25", + "src": "11462:8:26", "valueSize": 1 } } ], - "id": 3866, + "id": 4217, "nodeType": "InlineAssembly", "operations": "{\n methodId := calldataload(0)\n}", - "src": "11031:94:25" + "src": "11448:94:26" }, { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3873, + "id": 4224, "isConstant": false, "isLValue": false, "isPure": false, @@ -26601,34 +26385,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3867, + "id": 4218, "name": "calldataMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11127:17:25", + "referencedDeclaration": 3400, + "src": "11544:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, - "id": 3870, + "id": 4221, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3868, + "id": 4219, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11145:3:25", + "referencedDeclaration": 4366, + "src": "11562:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3869, + "id": 4220, "isConstant": false, "isLValue": false, "isPure": false, @@ -26636,7 +26420,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11145:8:25", + "src": "11562:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -26647,9 +26431,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11127:27:25", + "src": "11544:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -26659,18 +26443,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3871, + "id": 4222, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11158:8:25", + "referencedDeclaration": 3378, + "src": "11575:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3872, + "id": 4223, "isConstant": false, "isLValue": false, "isPure": true, @@ -26678,26 +26462,26 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11158:15:25", + "src": "11575:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11127:46:25", + "src": "11544:46:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3882, + "id": 4233, "nodeType": "IfStatement", - "src": "11123:101:25", + "src": "11540:101:26", "trueBody": { - "id": 3881, + "id": 4232, "nodeType": "Block", - "src": "11175:49:25", + "src": "11592:49:26", "statements": [ { "expression": { @@ -26707,34 +26491,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3875, + "id": 4226, "name": "calldataRevertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "11187:21:25", + "referencedDeclaration": 3408, + "src": "11604:21:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, - "id": 3878, + "id": 4229, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3876, + "id": 4227, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11209:3:25", + "referencedDeclaration": 4366, + "src": "11626:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3877, + "id": 4228, "isConstant": false, "isLValue": false, "isPure": false, @@ -26742,7 +26526,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11209:8:25", + "src": "11626:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -26753,7 +26537,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11187:31:25", + "src": "11604:31:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -26767,21 +26551,21 @@ "typeString": "string storage ref" } ], - "id": 3874, + "id": 4225, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4021, - "src": "11180:6:25", + "referencedDeclaration": 4372, + "src": "11597:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 3879, + "id": 4230, "isConstant": false, "isLValue": false, "isPure": false, @@ -26789,15 +26573,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11180:39:25", + "src": "11597:39:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3880, + "id": 4231, "nodeType": "ExpressionStatement", - "src": "11180:39:25" + "src": "11597:39:26" } ] } @@ -26806,10 +26590,10 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3889, + "id": 4240, "isConstant": false, "isLValue": false, "isPure": false, @@ -26818,34 +26602,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3883, + "id": 4234, "name": "calldataMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11231:17:25", + "referencedDeclaration": 3400, + "src": "11648:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, - "id": 3886, + "id": 4237, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3884, + "id": 4235, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11249:3:25", + "referencedDeclaration": 4366, + "src": "11666:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3885, + "id": 4236, "isConstant": false, "isLValue": false, "isPure": false, @@ -26853,7 +26637,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11249:8:25", + "src": "11666:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -26864,9 +26648,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11231:27:25", + "src": "11648:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -26876,18 +26660,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3887, + "id": 4238, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11262:8:25", + "referencedDeclaration": 3378, + "src": "11679:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3888, + "id": 4239, "isConstant": false, "isLValue": false, "isPure": true, @@ -26895,26 +26679,26 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11262:17:25", + "src": "11679:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11231:48:25", + "src": "11648:48:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3894, + "id": 4245, "nodeType": "IfStatement", - "src": "11227:75:25", + "src": "11644:75:26", "trueBody": { - "id": 3893, + "id": 4244, "nodeType": "Block", - "src": "11281:21:25", + "src": "11698:21:26", "statements": [ { "expression": { @@ -26922,18 +26706,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3890, + "id": 4241, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11286:9:25", + "referencedDeclaration": 4146, + "src": "11703:9:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3891, + "id": 4242, "isConstant": false, "isLValue": false, "isPure": false, @@ -26941,31 +26725,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11286:11:25", + "src": "11703:11:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3892, + "id": 4243, "nodeType": "ExpressionStatement", - "src": "11286:11:25" + "src": "11703:11:26" } ] } }, { "assignments": [ - 3896 + 4247 ], "declarations": [ { "constant": false, - "id": 3896, + "id": 4247, "name": "result", "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11305:19:25", + "scope": 4349, + "src": "11722:19:26", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -26973,10 +26757,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3895, + "id": 4246, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11305:5:25", + "src": "11722:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -26986,39 +26770,39 @@ "visibility": "internal" } ], - "id": 3901, + "id": 4252, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3897, + "id": 4248, "name": "calldataExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "11327:20:25", + "referencedDeclaration": 3404, + "src": "11744:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes memory => bytes storage ref)" } }, - "id": 3900, + "id": 4251, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3898, + "id": 4249, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11348:3:25", + "referencedDeclaration": 4366, + "src": "11765:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3899, + "id": 4250, "isConstant": false, "isLValue": false, "isPure": false, @@ -27026,7 +26810,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11348:8:25", + "src": "11765:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -27037,14 +26821,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11327:30:25", + "src": "11744:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "11305:52:25" + "src": "11722:52:26" }, { "condition": { @@ -27053,7 +26837,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3905, + "id": 4256, "isConstant": false, "isLValue": false, "isPure": false, @@ -27062,18 +26846,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3902, + "id": 4253, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11402:6:25", + "referencedDeclaration": 4247, + "src": "11819:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3903, + "id": 4254, "isConstant": false, "isLValue": false, "isPure": false, @@ -27081,7 +26865,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11402:13:25", + "src": "11819:13:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27092,14 +26876,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3904, + "id": 4255, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11419:1:25", + "src": "11836:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -27107,29 +26891,29 @@ }, "value": "0" }, - "src": "11402:18:25", + "src": "11819:18:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3938, + "id": 4289, "nodeType": "IfStatement", - "src": "11398:262:25", + "src": "11815:262:26", "trueBody": { - "id": 3937, + "id": 4288, "nodeType": "Block", - "src": "11422:238:25", + "src": "11839:238:26", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3911, + "id": 4262, "isConstant": false, "isLValue": false, "isPure": false, @@ -27138,26 +26922,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3906, + "id": 4257, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11431:17:25", + "referencedDeclaration": 3420, + "src": "11848:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3908, + "id": 4259, "indexExpression": { "argumentTypes": null, - "id": 3907, + "id": 4258, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11449:8:25", + "referencedDeclaration": 4215, + "src": "11866:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -27168,9 +26952,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11431:27:25", + "src": "11848:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -27180,18 +26964,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3909, + "id": 4260, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11462:8:25", + "referencedDeclaration": 3378, + "src": "11879:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3910, + "id": 4261, "isConstant": false, "isLValue": false, "isPure": true, @@ -27199,26 +26983,26 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11462:15:25", + "src": "11879:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11431:46:25", + "src": "11848:46:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3919, + "id": 4270, "nodeType": "IfStatement", - "src": "11427:104:25", + "src": "11844:104:26", "trueBody": { - "id": 3918, + "id": 4269, "nodeType": "Block", - "src": "11479:52:25", + "src": "11896:52:26", "statements": [ { "expression": { @@ -27228,26 +27012,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3913, + "id": 4264, "name": "methodIdRevertMessages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "11492:22:25", + "referencedDeclaration": 3428, + "src": "11909:22:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string storage ref)" } }, - "id": 3915, + "id": 4266, "indexExpression": { "argumentTypes": null, - "id": 3914, + "id": 4265, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11515:8:25", + "referencedDeclaration": 4215, + "src": "11932:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -27258,7 +27042,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11492:32:25", + "src": "11909:32:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -27272,21 +27056,21 @@ "typeString": "string storage ref" } ], - "id": 3912, + "id": 4263, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4021, - "src": "11485:6:25", + "referencedDeclaration": 4372, + "src": "11902:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 3916, + "id": 4267, "isConstant": false, "isLValue": false, "isPure": false, @@ -27294,15 +27078,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11485:40:25", + "src": "11902:40:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3917, + "id": 4268, "nodeType": "ExpressionStatement", - "src": "11485:40:25" + "src": "11902:40:26" } ] } @@ -27311,10 +27095,10 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3925, + "id": 4276, "isConstant": false, "isLValue": false, "isPure": false, @@ -27323,26 +27107,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3920, + "id": 4271, "name": "methodIdMockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11539:17:25", + "referencedDeclaration": 3420, + "src": "11956:17:26", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, - "id": 3922, + "id": 4273, "indexExpression": { "argumentTypes": null, - "id": 3921, + "id": 4272, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11557:8:25", + "referencedDeclaration": 4215, + "src": "11974:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -27353,9 +27137,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11539:27:25", + "src": "11956:27:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -27365,18 +27149,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3923, + "id": 4274, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11570:8:25", + "referencedDeclaration": 3378, + "src": "11987:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3924, + "id": 4275, "isConstant": false, "isLValue": false, "isPure": true, @@ -27384,26 +27168,26 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11570:17:25", + "src": "11987:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11539:48:25", + "src": "11956:48:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3930, + "id": 4281, "nodeType": "IfStatement", - "src": "11535:77:25", + "src": "11952:77:26", "trueBody": { - "id": 3929, + "id": 4280, "nodeType": "Block", - "src": "11589:23:25", + "src": "12006:23:26", "statements": [ { "expression": { @@ -27411,18 +27195,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3926, + "id": 4277, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11595:9:25", + "referencedDeclaration": 4146, + "src": "12012:9:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3927, + "id": 4278, "isConstant": false, "isLValue": false, "isPure": false, @@ -27430,15 +27214,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11595:11:25", + "src": "12012:11:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3928, + "id": 4279, "nodeType": "ExpressionStatement", - "src": "11595:11:25" + "src": "12012:11:26" } ] } @@ -27446,19 +27230,19 @@ { "expression": { "argumentTypes": null, - "id": 3935, + "id": 4286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3931, + "id": 4282, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11616:6:25", + "referencedDeclaration": 4247, + "src": "12033:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -27470,26 +27254,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3932, + "id": 4283, "name": "methodIdExpectations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "11625:20:25", + "referencedDeclaration": 3424, + "src": "12042:20:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes storage ref)" } }, - "id": 3934, + "id": 4285, "indexExpression": { "argumentTypes": null, - "id": 3933, + "id": 4284, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11646:8:25", + "referencedDeclaration": 4215, + "src": "12063:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -27500,21 +27284,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11625:30:25", + "src": "12042:30:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "src": "11616:39:25", + "src": "12033:39:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3936, + "id": 4287, "nodeType": "ExpressionStatement", - "src": "11616:39:25" + "src": "12033:39:26" } ] } @@ -27526,7 +27310,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3942, + "id": 4293, "isConstant": false, "isLValue": false, "isPure": false, @@ -27535,18 +27319,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3939, + "id": 4290, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11705:6:25", + "referencedDeclaration": 4247, + "src": "12122:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3940, + "id": 4291, "isConstant": false, "isLValue": false, "isPure": false, @@ -27554,7 +27338,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11705:13:25", + "src": "12122:13:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27565,14 +27349,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3941, + "id": 4292, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11722:1:25", + "src": "12139:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -27580,43 +27364,43 @@ }, "value": "0" }, - "src": "11705:18:25", + "src": "12122:18:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3967, + "id": 4318, "nodeType": "IfStatement", - "src": "11701:218:25", + "src": "12118:218:26", "trueBody": { - "id": 3966, + "id": 4317, "nodeType": "Block", - "src": "11725:194:25", + "src": "12142:194:26", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3946, + "id": 4297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3943, + "id": 4294, "name": "fallbackMockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11734:16:25", + "referencedDeclaration": 3434, + "src": "12151:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -27626,18 +27410,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3944, + "id": 4295, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11754:8:25", + "referencedDeclaration": 3378, + "src": "12171:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3945, + "id": 4296, "isConstant": false, "isLValue": false, "isPure": true, @@ -27645,26 +27429,26 @@ "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11754:15:25", + "src": "12171:15:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11734:35:25", + "src": "12151:35:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3952, + "id": 4303, "nodeType": "IfStatement", - "src": "11730:82:25", + "src": "12147:82:26", "trueBody": { - "id": 3951, + "id": 4302, "nodeType": "Block", - "src": "11771:41:25", + "src": "12188:41:26", "statements": [ { "expression": { @@ -27672,12 +27456,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3948, + "id": 4299, "name": "fallbackRevertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "11784:21:25", + "referencedDeclaration": 3438, + "src": "12201:21:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -27691,21 +27475,21 @@ "typeString": "string storage ref" } ], - "id": 3947, + "id": 4298, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4020, - 4021 + 4371, + 4372 ], - "referencedDeclaration": 4021, - "src": "11777:6:25", + "referencedDeclaration": 4372, + "src": "12194:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 3949, + "id": 4300, "isConstant": false, "isLValue": false, "isPure": false, @@ -27713,15 +27497,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11777:29:25", + "src": "12194:29:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3950, + "id": 4301, "nodeType": "ExpressionStatement", - "src": "11777:29:25" + "src": "12194:29:26" } ] } @@ -27730,24 +27514,24 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" }, - "id": 3956, + "id": 4307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3953, + "id": 4304, "name": "fallbackMockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11820:16:25", + "referencedDeclaration": 3434, + "src": "12237:16:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, @@ -27757,18 +27541,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3954, + "id": 4305, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11840:8:25", + "referencedDeclaration": 3378, + "src": "12257:8:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", + "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", "typeString": "type(enum MockContract.MockType)" } }, - "id": 3955, + "id": 4306, "isConstant": false, "isLValue": false, "isPure": true, @@ -27776,26 +27560,26 @@ "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11840:17:25", + "src": "12257:17:26", "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", + "typeIdentifier": "t_enum$_MockType_$3378", "typeString": "enum MockContract.MockType" } }, - "src": "11820:37:25", + "src": "12237:37:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3961, + "id": 4312, "nodeType": "IfStatement", - "src": "11816:66:25", + "src": "12233:66:26", "trueBody": { - "id": 3960, + "id": 4311, "nodeType": "Block", - "src": "11859:23:25", + "src": "12276:23:26", "statements": [ { "expression": { @@ -27803,18 +27587,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3957, + "id": 4308, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11865:9:25", + "referencedDeclaration": 4146, + "src": "12282:9:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3958, + "id": 4309, "isConstant": false, "isLValue": false, "isPure": false, @@ -27822,15 +27606,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11865:11:25", + "src": "12282:11:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3959, + "id": 4310, "nodeType": "ExpressionStatement", - "src": "11865:11:25" + "src": "12282:11:26" } ] } @@ -27838,19 +27622,19 @@ { "expression": { "argumentTypes": null, - "id": 3964, + "id": 4315, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3962, + "id": 4313, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11886:6:25", + "referencedDeclaration": 4247, + "src": "12303:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -27860,26 +27644,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3963, + "id": 4314, "name": "fallbackExpectation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "11895:19:25", + "referencedDeclaration": 3436, + "src": "12312:19:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "src": "11886:28:25", + "src": "12303:28:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3965, + "id": 4316, "nodeType": "ExpressionStatement", - "src": "11886:28:25" + "src": "12303:28:26" } ] } @@ -27887,19 +27671,19 @@ { "expression": { "argumentTypes": null, - "id": 3970, + "id": 4321, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3968, + "id": 4319, "name": "invocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "11946:11:25", + "referencedDeclaration": 3440, + "src": "12363:11:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27910,14 +27694,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3969, + "id": 4320, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11961:1:25", + "src": "12378:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -27925,20 +27709,20 @@ }, "value": "1" }, - "src": "11946:16:25", + "src": "12363:16:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3971, + "id": 4322, "nodeType": "ExpressionStatement", - "src": "11946:16:25" + "src": "12363:16:26" }, { "expression": { "argumentTypes": null, - "id": 3982, + "id": 4333, "isConstant": false, "isLValue": false, "isPure": false, @@ -27947,18 +27731,18 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3972, + "id": 4323, "name": "methodIdInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "11966:19:25", + "referencedDeclaration": 3432, + "src": "12383:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3980, + "id": 4331, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -27967,12 +27751,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3976, + "id": 4327, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12013:10:25", + "referencedDeclaration": 3442, + "src": "12430:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27980,12 +27764,12 @@ }, { "argumentTypes": null, - "id": 3977, + "id": 4328, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "12025:8:25", + "referencedDeclaration": 4215, + "src": "12442:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -28005,18 +27789,18 @@ ], "expression": { "argumentTypes": null, - "id": 3974, + "id": 4325, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "11996:3:25", + "referencedDeclaration": 4353, + "src": "12413:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3975, + "id": 4326, "isConstant": false, "isLValue": false, "isPure": true, @@ -28024,13 +27808,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11996:16:25", + "src": "12413:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3978, + "id": 4329, "isConstant": false, "isLValue": false, "isPure": false, @@ -28038,7 +27822,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11996:38:25", + "src": "12413:38:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -28052,18 +27836,18 @@ "typeString": "bytes memory" } ], - "id": 3973, + "id": 4324, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "11986:9:25", + "referencedDeclaration": 4360, + "src": "12403:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3979, + "id": 4330, "isConstant": false, "isLValue": false, "isPure": false, @@ -28071,7 +27855,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11986:49:25", + "src": "12403:49:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28082,7 +27866,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "11966:70:25", + "src": "12383:70:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28093,14 +27877,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3981, + "id": 4332, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12040:1:25", + "src": "12457:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -28108,20 +27892,20 @@ }, "value": "1" }, - "src": "11966:75:25", + "src": "12383:75:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3983, + "id": 4334, "nodeType": "ExpressionStatement", - "src": "11966:75:25" + "src": "12383:75:26" }, { "expression": { "argumentTypes": null, - "id": 3995, + "id": 4346, "isConstant": false, "isLValue": false, "isPure": false, @@ -28130,18 +27914,18 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3984, + "id": 4335, "name": "calldataInvocations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "12045:19:25", + "referencedDeclaration": 3412, + "src": "12462:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3993, + "id": 4344, "indexExpression": { "argumentTypes": null, "arguments": [ @@ -28150,12 +27934,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3988, + "id": 4339, "name": "resetCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12092:10:25", + "referencedDeclaration": 3442, + "src": "12509:10:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28165,18 +27949,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3989, + "id": 4340, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "12104:3:25", + "referencedDeclaration": 4366, + "src": "12521:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3990, + "id": 4341, "isConstant": false, "isLValue": false, "isPure": false, @@ -28184,7 +27968,7 @@ "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12104:8:25", + "src": "12521:8:26", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -28204,18 +27988,18 @@ ], "expression": { "argumentTypes": null, - "id": 3986, + "id": 4337, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12075:3:25", + "referencedDeclaration": 4353, + "src": "12492:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3987, + "id": 4338, "isConstant": false, "isLValue": false, "isPure": true, @@ -28223,13 +28007,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12075:16:25", + "src": "12492:16:26", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3991, + "id": 4342, "isConstant": false, "isLValue": false, "isPure": false, @@ -28237,7 +28021,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12075:38:25", + "src": "12492:38:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -28251,18 +28035,18 @@ "typeString": "bytes memory" } ], - "id": 3985, + "id": 4336, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12065:9:25", + "referencedDeclaration": 4360, + "src": "12482:9:26", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3992, + "id": 4343, "isConstant": false, "isLValue": false, "isPure": false, @@ -28270,7 +28054,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12065:49:25", + "src": "12482:49:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28281,7 +28065,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "12045:70:25", + "src": "12462:70:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28292,14 +28076,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3994, + "id": 4345, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12119:1:25", + "src": "12536:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -28307,83 +28091,81 @@ }, "value": "1" }, - "src": "12045:75:25", + "src": "12462:75:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3996, + "id": 4347, "nodeType": "ExpressionStatement", - "src": "12045:75:25" + "src": "12462:75:26" }, { "externalReferences": [ { "result": { - "declaration": 3896, + "declaration": 4247, "isOffset": false, "isSlot": false, - "src": "12156:6:25", + "src": "12588:6:26", "valueSize": 1 } }, { "result": { - "declaration": 3896, + "declaration": 4247, "isOffset": false, "isSlot": false, - "src": "12171:6:25", + "src": "12573:6:26", "valueSize": 1 } } ], - "id": 3997, + "id": 4348, "nodeType": "InlineAssembly", "operations": "{\n return(add(0x20, result), mload(result))\n}", - "src": "12125:61:25" + "src": "12542:61:26" } ] }, "documentation": null, - "id": 3999, + "id": 4350, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "fallback", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3861, + "id": 4212, "nodeType": "ParameterList", "parameters": [], - "src": "10988:2:25" + "src": "11405:2:26" }, - "payable": true, "returnParameters": { - "id": 3862, + "id": 4213, "nodeType": "ParameterList", "parameters": [], - "src": "11008:0:25" + "src": "11425:0:26" }, - "scope": 4000, - "src": "10980:1206:25", + "scope": 4351, + "src": "11397:1206:26", "stateMutability": "payable", "superFunction": null, "visibility": "external" } ], - "scope": 4001, - "src": "3453:8735:25" + "scope": 4352, + "src": "3610:8995:26" } ], - "src": "0:12189:25" + "src": "0:12606:26" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.953Z" + "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 index 985b9649..9731e66d 100644 --- a/safe-contracts/build/contracts/Module.json +++ b/safe-contracts/build/contracts/Module.json @@ -30,50 +30,51 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610320806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156102b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058206735a74f4afef13f3b2701cdd3899ee378ad1eb5d0cd64887ffd5885365545ee0029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156102b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058206735a74f4afef13f3b2701cdd3899ee378ad1eb5d0cd64887ffd5885365545ee0029", - "sourceMap": "233:511:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;233:511:4;;;;;;;", - "deployedSourceMap": "233:511:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;;;;;;;;;;;;:::o;626:248:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o", - "source": "pragma solidity 0.4.24;\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) == 0, \"Manager has already been set\");\n manager = ModuleManager(msg.sender);\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "exportedSymbols": { "Module": [ - 935 + 1020 ] }, - "id": 936, + "id": 1021, "nodeType": "SourceUnit", "nodes": [ { - "id": 894, + "id": 977, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:4" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", "file": "../common/MasterCopy.sol", - "id": 895, + "id": 978, "nodeType": "ImportDirective", - "scope": 936, - "sourceUnit": 1694, + "scope": 1021, + "sourceUnit": 1840, "src": "24:34:4", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 896, + "id": 979, "nodeType": "ImportDirective", - "scope": 936, - "sourceUnit": 1213, + "scope": 1021, + "sourceUnit": 1331, "src": "59:29:4", "symbolAliases": [], "unitAlias": "" @@ -84,59 +85,59 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 897, + "id": 980, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1693, + "referencedDeclaration": 1839, "src": "252:10:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$1693", + "typeIdentifier": "t_contract$_MasterCopy_$1839", "typeString": "contract MasterCopy" } }, - "id": 898, + "id": 981, "nodeType": "InheritanceSpecifier", "src": "252:10:4" } ], "contractDependencies": [ - 1693, - 1735 + 1839, + 1881 ], "contractKind": "contract", "documentation": "@title Module - Base class for modules.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 935, + "id": 1020, "linearizedBaseContracts": [ - 935, - 1693, - 1735 + 1020, + 1839, + 1881 ], "name": "Module", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 900, + "id": 983, "name": "manager", "nodeType": "VariableDeclaration", - "scope": 935, + "scope": 1020, "src": "270:28:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" }, "typeName": { "contractScope": null, - "id": 899, + "id": 982, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1212, + "referencedDeclaration": 1330, "src": "270:13:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, @@ -145,7 +146,7 @@ }, { "body": { - "id": 913, + "id": 996, "nodeType": "Block", "src": "327:109:4", "statements": [ @@ -156,10 +157,10 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, - "id": 908, + "id": 991, "isConstant": false, "isLValue": false, "isPure": false, @@ -168,18 +169,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 903, + "id": 986, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, + "referencedDeclaration": 4366, "src": "345:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 904, + "id": 987, "isConstant": false, "isLValue": false, "isPure": false, @@ -189,8 +190,8 @@ "referencedDeclaration": null, "src": "345:10:4", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "BinaryOperation", @@ -200,14 +201,14 @@ "arguments": [ { "argumentTypes": null, - "id": 906, + "id": 989, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, + "referencedDeclaration": 983, "src": "367:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } } @@ -215,11 +216,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } ], - "id": 905, + "id": 988, "isConstant": false, "isLValue": false, "isPure": true, @@ -232,7 +233,7 @@ }, "typeName": "address" }, - "id": 907, + "id": 990, "isConstant": false, "isLValue": false, "isPure": false, @@ -242,8 +243,8 @@ "nodeType": "FunctionCall", "src": "359:16:4", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "src": "345:30:4", @@ -255,7 +256,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572", - "id": 909, + "id": 992, "isConstant": false, "isLValue": false, "isPure": true, @@ -282,21 +283,21 @@ "typeString": "literal_string \"Method can only be called from manager\"" } ], - "id": 902, + "id": 985, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, + "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": 910, + "id": 993, "isConstant": false, "isLValue": false, "isPure": false, @@ -310,23 +311,23 @@ "typeString": "tuple()" } }, - "id": 911, + "id": 994, "nodeType": "ExpressionStatement", "src": "337:81:4" }, { - "id": 912, + "id": 995, "nodeType": "PlaceholderStatement", "src": "428:1:4" } ] }, "documentation": null, - "id": 914, + "id": 997, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 901, + "id": 984, "nodeType": "ParameterList", "parameters": [], "src": "324:2:4" @@ -336,9 +337,9 @@ }, { "body": { - "id": 933, + "id": 1018, "nodeType": "Block", - "src": "485:257:4", + "src": "485:266:4", "statements": [ { "expression": { @@ -347,10 +348,10 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, - "id": 922, + "id": 1007, "isConstant": false, "isLValue": false, "isPure": false, @@ -360,14 +361,14 @@ "arguments": [ { "argumentTypes": null, - "id": 919, + "id": 1002, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, + "referencedDeclaration": 983, "src": "644:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } } @@ -375,11 +376,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } ], - "id": 918, + "id": 1001, "isConstant": false, "isLValue": false, "isPure": true, @@ -392,7 +393,7 @@ }, "typeName": "address" }, - "id": 920, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": false, @@ -402,31 +403,69 @@ "nodeType": "FunctionCall", "src": "636:16:4", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 921, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "656:1:4", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "656:10:4", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "636:21:4", + "src": "636:30:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -435,14 +474,14 @@ { "argumentTypes": null, "hexValue": "4d616e616765722068617320616c7265616479206265656e20736574", - "id": 923, + "id": 1008, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "659:30:4", + "src": "668:30:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", @@ -462,21 +501,21 @@ "typeString": "literal_string \"Manager has already been set\"" } ], - "id": 917, + "id": 1000, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, + "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": 924, + "id": 1009, "isConstant": false, "isLValue": false, "isPure": false, @@ -484,34 +523,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "628:62:4", + "src": "628:71:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 925, + "id": 1010, "nodeType": "ExpressionStatement", - "src": "628:62:4" + "src": "628:71:4" }, { "expression": { "argumentTypes": null, - "id": 931, + "id": 1016, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 926, + "id": 1011, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "700:7:4", + "referencedDeclaration": 983, + "src": "709:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, @@ -524,18 +563,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 928, + "id": 1013, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "724:3:4", + "referencedDeclaration": 4366, + "src": "733:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 929, + "id": 1014, "isConstant": false, "isLValue": false, "isPure": false, @@ -543,32 +582,32 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "724:10:4", + "src": "733:10:4", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], - "id": 927, + "id": 1012, "name": "ModuleManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1212, - "src": "710:13:4", + "referencedDeclaration": 1330, + "src": "719:13:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1212_$", + "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1330_$", "typeString": "type(contract ModuleManager)" } }, - "id": 930, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, @@ -576,96 +615,95 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "710:25:4", + "src": "719:25:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "src": "700:35:4", + "src": "709:35:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "id": 932, + "id": 1017, "nodeType": "ExpressionStatement", - "src": "700:35:4" + "src": "709:35:4" } ] }, "documentation": null, - "id": 934, + "id": 1019, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setManager", "nodeType": "FunctionDefinition", "parameters": { - "id": 915, + "id": 998, "nodeType": "ParameterList", "parameters": [], "src": "461:2:4" }, - "payable": false, "returnParameters": { - "id": 916, + "id": 999, "nodeType": "ParameterList", "parameters": [], "src": "485:0:4" }, - "scope": 935, - "src": "442:300:4", + "scope": 1020, + "src": "442:309:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 936, - "src": "233:511:4" + "scope": 1021, + "src": "233:520:4" } ], - "src": "0:745:4" + "src": "0:754:4" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "exportedSymbols": { "Module": [ - 935 + 1020 ] }, - "id": 936, + "id": 1021, "nodeType": "SourceUnit", "nodes": [ { - "id": 894, + "id": 977, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:4" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", "file": "../common/MasterCopy.sol", - "id": 895, + "id": 978, "nodeType": "ImportDirective", - "scope": 936, - "sourceUnit": 1694, + "scope": 1021, + "sourceUnit": 1840, "src": "24:34:4", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 896, + "id": 979, "nodeType": "ImportDirective", - "scope": 936, - "sourceUnit": 1213, + "scope": 1021, + "sourceUnit": 1331, "src": "59:29:4", "symbolAliases": [], "unitAlias": "" @@ -676,59 +714,59 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 897, + "id": 980, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1693, + "referencedDeclaration": 1839, "src": "252:10:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$1693", + "typeIdentifier": "t_contract$_MasterCopy_$1839", "typeString": "contract MasterCopy" } }, - "id": 898, + "id": 981, "nodeType": "InheritanceSpecifier", "src": "252:10:4" } ], "contractDependencies": [ - 1693, - 1735 + 1839, + 1881 ], "contractKind": "contract", "documentation": "@title Module - Base class for modules.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 935, + "id": 1020, "linearizedBaseContracts": [ - 935, - 1693, - 1735 + 1020, + 1839, + 1881 ], "name": "Module", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 900, + "id": 983, "name": "manager", "nodeType": "VariableDeclaration", - "scope": 935, + "scope": 1020, "src": "270:28:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" }, "typeName": { "contractScope": null, - "id": 899, + "id": 982, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1212, + "referencedDeclaration": 1330, "src": "270:13:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, @@ -737,7 +775,7 @@ }, { "body": { - "id": 913, + "id": 996, "nodeType": "Block", "src": "327:109:4", "statements": [ @@ -748,10 +786,10 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, - "id": 908, + "id": 991, "isConstant": false, "isLValue": false, "isPure": false, @@ -760,18 +798,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 903, + "id": 986, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, + "referencedDeclaration": 4366, "src": "345:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 904, + "id": 987, "isConstant": false, "isLValue": false, "isPure": false, @@ -781,8 +819,8 @@ "referencedDeclaration": null, "src": "345:10:4", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "BinaryOperation", @@ -792,14 +830,14 @@ "arguments": [ { "argumentTypes": null, - "id": 906, + "id": 989, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, + "referencedDeclaration": 983, "src": "367:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } } @@ -807,11 +845,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } ], - "id": 905, + "id": 988, "isConstant": false, "isLValue": false, "isPure": true, @@ -824,7 +862,7 @@ }, "typeName": "address" }, - "id": 907, + "id": 990, "isConstant": false, "isLValue": false, "isPure": false, @@ -834,8 +872,8 @@ "nodeType": "FunctionCall", "src": "359:16:4", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "src": "345:30:4", @@ -847,7 +885,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572", - "id": 909, + "id": 992, "isConstant": false, "isLValue": false, "isPure": true, @@ -874,21 +912,21 @@ "typeString": "literal_string \"Method can only be called from manager\"" } ], - "id": 902, + "id": 985, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, + "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": 910, + "id": 993, "isConstant": false, "isLValue": false, "isPure": false, @@ -902,23 +940,23 @@ "typeString": "tuple()" } }, - "id": 911, + "id": 994, "nodeType": "ExpressionStatement", "src": "337:81:4" }, { - "id": 912, + "id": 995, "nodeType": "PlaceholderStatement", "src": "428:1:4" } ] }, "documentation": null, - "id": 914, + "id": 997, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 901, + "id": 984, "nodeType": "ParameterList", "parameters": [], "src": "324:2:4" @@ -928,9 +966,9 @@ }, { "body": { - "id": 933, + "id": 1018, "nodeType": "Block", - "src": "485:257:4", + "src": "485:266:4", "statements": [ { "expression": { @@ -939,10 +977,10 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, - "id": 922, + "id": 1007, "isConstant": false, "isLValue": false, "isPure": false, @@ -952,14 +990,14 @@ "arguments": [ { "argumentTypes": null, - "id": 919, + "id": 1002, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, + "referencedDeclaration": 983, "src": "644:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } } @@ -967,11 +1005,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } ], - "id": 918, + "id": 1001, "isConstant": false, "isLValue": false, "isPure": true, @@ -984,7 +1022,7 @@ }, "typeName": "address" }, - "id": 920, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": false, @@ -994,31 +1032,69 @@ "nodeType": "FunctionCall", "src": "636:16:4", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 921, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "656:1:4", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "656:10:4", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "636:21:4", + "src": "636:30:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1027,14 +1103,14 @@ { "argumentTypes": null, "hexValue": "4d616e616765722068617320616c7265616479206265656e20736574", - "id": 923, + "id": 1008, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "659:30:4", + "src": "668:30:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", @@ -1054,21 +1130,21 @@ "typeString": "literal_string \"Manager has already been set\"" } ], - "id": 917, + "id": 1000, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, + "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": 924, + "id": 1009, "isConstant": false, "isLValue": false, "isPure": false, @@ -1076,34 +1152,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "628:62:4", + "src": "628:71:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 925, + "id": 1010, "nodeType": "ExpressionStatement", - "src": "628:62:4" + "src": "628:71:4" }, { "expression": { "argumentTypes": null, - "id": 931, + "id": 1016, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 926, + "id": 1011, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "700:7:4", + "referencedDeclaration": 983, + "src": "709:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, @@ -1116,18 +1192,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 928, + "id": 1013, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "724:3:4", + "referencedDeclaration": 4366, + "src": "733:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 929, + "id": 1014, "isConstant": false, "isLValue": false, "isPure": false, @@ -1135,32 +1211,32 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "724:10:4", + "src": "733:10:4", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], - "id": 927, + "id": 1012, "name": "ModuleManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1212, - "src": "710:13:4", + "referencedDeclaration": 1330, + "src": "719:13:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1212_$", + "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1330_$", "typeString": "type(contract ModuleManager)" } }, - "id": 930, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, @@ -1168,63 +1244,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "710:25:4", + "src": "719:25:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "src": "700:35:4", + "src": "709:35:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "id": 932, + "id": 1017, "nodeType": "ExpressionStatement", - "src": "700:35:4" + "src": "709:35:4" } ] }, "documentation": null, - "id": 934, + "id": 1019, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setManager", "nodeType": "FunctionDefinition", "parameters": { - "id": 915, + "id": 998, "nodeType": "ParameterList", "parameters": [], "src": "461:2:4" }, - "payable": false, "returnParameters": { - "id": 916, + "id": 999, "nodeType": "ParameterList", "parameters": [], "src": "485:0:4" }, - "scope": 935, - "src": "442:300:4", + "scope": 1020, + "src": "442:309:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 936, - "src": "233:511:4" + "scope": 1021, + "src": "233:520:4" } ], - "src": "0:745:4" + "src": "0:754:4" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.910Z" + "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 index b0e4be35..22166669 100644 --- a/safe-contracts/build/contracts/ModuleManager.json +++ b/safe-contracts/build/contracts/ModuleManager.json @@ -134,72 +134,73 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611083806100206000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a71461006f578063610b59251461012757806385e332cd1461016a578063b2494df3146101c1578063e009cfde1461022d575b005b34801561007b57600080fd5b5061010d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610290565b604051808215151515815260200191505060405180910390f35b34801561013357600080fd5b50610168600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103bb565b005b34801561017657600080fd5b5061017f6107f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cd57600080fd5b506101d66107fd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102195780820151818401526020810190506101fe565b505050509050019250505060405180910390f35b34801561023957600080fd5b5061028e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aa0565b005b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156103a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6103b1858585855a610f18565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156104d85750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561054c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600181565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561090f576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061086b565b8260405190808252806020026020018201604052801561093e5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610a97578181848151811015156109ed57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506109a8565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610bbd5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610c31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b60008060006002811115610f2857fe5b846002811115610f3457fe5b1415610f4d57610f4687878786611015565b915061100b565b60016002811115610f5a57fe5b846002811115610f6657fe5b1415610f7e57610f7787868561102e565b915061100a565b610f8785611045565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820b03a2427075cac45bbdeb264b166fb8b827b7633a6c00d861f316e04ef37ba630029", - "deployedBytecode": "0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a71461006f578063610b59251461012757806385e332cd1461016a578063b2494df3146101c1578063e009cfde1461022d575b005b34801561007b57600080fd5b5061010d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610290565b604051808215151515815260200191505060405180910390f35b34801561013357600080fd5b50610168600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103bb565b005b34801561017657600080fd5b5061017f6107f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cd57600080fd5b506101d66107fd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102195780820151818401526020810190506101fe565b505050509050019250505060405180910390f35b34801561023957600080fd5b5061028e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aa0565b005b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156103a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6103b1858585855a610f18565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156104d85750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561054c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600181565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561090f576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061086b565b8260405190808252806020026020018201604052801561093e5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610a97578181848151811015156109ed57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506109a8565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610bbd5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610c31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b60008060006002811115610f2857fe5b846002811115610f3457fe5b1415610f4d57610f4687878786611015565b915061100b565b60016002811115610f5a57fe5b846002811115610f6657fe5b1415610f7e57610f7787868561102e565b915061100a565b610f8785611045565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820b03a2427075cac45bbdeb264b166fb8b827b7633a6c00d861f316e04ef37ba630029", - "sourceMap": "348:3685:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;348:3685:5;;;;;;;", - "deployedSourceMap": "348:3685:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2785:429:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:495;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:495:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;3293:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3293:738:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3293:738:5;;;;;;;;;;;;;;;;;1938:511;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1938:511:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429;2917:12;3025:1;3002:7;:19;3010:10;3002:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2994:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3161:46;3169:2;3173:5;3180:4;3186:9;3197;3161:7;:46::i;:::-;3151:56;;2785:429;;;;;;:::o;1182:495::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:5;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1649:21;1663:6;1649:21;;;;;;;;;;;;;;;;;;;;;;1182:495;:::o;488:55::-;539:3;488:55;:::o;3293:738::-;3360:9;3419:19;3452:21;3652:22;3441:1;3419:23;;3476:7;:25;539:3;3476:25;;;;;;;;;;;;;;;;;;;;;;;;;3452:49;;3511:132;539:3;3517:33;;:13;:33;;;;3511:132;;;3582:7;:22;3590:13;3582:22;;;;;;;;;;;;;;;;;;;;;;;;;3566:38;;3618:14;;;;;;;3511:132;;;3691:11;3677:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3677:26:5;;;;3652:51;;3761:1;3747:15;;3788:7;:25;539:3;3788:25;;;;;;;;;;;;;;;;;;;;;;;;;3772:41;;3823:180;539:3;3829:33;;:13;:33;;;;3823:180;;;3899:13;3878:5;3884:11;3878:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3942:7;:22;3950:13;3942:22;;;;;;;;;;;;;;;;;;;;;;;;;3926:38;;3978:14;;;;;;;3823:180;;;4019:5;4012:12;;3293:738;;;;:::o;1938:511::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2152:1:5;2141:6;2133:20;;;;:59;;;;;539:3;2157:35;;2165:6;2157:35;;;;2133:59;2125:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:6;2246:38;;:7;:19;2254:10;2246:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2238:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2361:7;:15;2369:6;2361:15;;;;;;;;;;;;;;;;;;;;;;;;;2339:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2404:1;2386:7;:15;2394:6;2386:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2420:22;2435:6;2420:22;;;;;;;;;;;;;;;;;;;;;;1938:511;;:::o;313:548:3:-;444:12;715:19;489;476:32;;;;;;;;:9;:32;;;;;;;;;472:383;;;532:35;544:2;548:5;555:4;561:5;532:11;:35::i;:::-;522:45;;472:383;;;599:27;586:40;;;;;;;;:9;:40;;;;;;;;;582:273;;;650:36;670:2;674:4;680:5;650:19;:36::i;:::-;640:46;;582:273;;;737:19;751:4;737:13;:19::i;:::-;715:41;;795:1;780:11;:16;;;;770:26;;815:29;832:11;815:29;;;;;;;;;;;;;;;;;;;;;;582:273;472:383;313:548;;;;;;;;:::o;867:309::-;976:12;1158:1;1155;1148:4;1142:11;1135:4;1129;1125:15;1118:5;1114:2;1107:5;1102:58;1091:69;;1077:93;;;;;;:::o;1182:303::-;1284:12;1467:1;1464;1457:4;1451:11;1444:4;1438;1434:15;1430:2;1423:5;1410:59;1399:70;;1385:94;;;;;:::o;1491:261::-;1560:19;1730:4;1724:11;1717:4;1711;1707:15;1704:1;1697:39;1682:54;;1668:78;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"../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 data)\n internal\n {\n require(modules[SENTINEL_MODULES] == 0, \"Modules have already been initialized\");\n modules[SENTINEL_MODULES] = SENTINEL_MODULES;\n if (to != 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) != 0 && address(module) != SENTINEL_MODULES, \"Invalid module address provided\");\n // Module cannot be added twice.\n require(modules[module] == 0, \"Module has already been added\");\n modules[module] = modules[SENTINEL_MODULES];\n modules[SENTINEL_MODULES] = 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) != 0 && address(module) != SENTINEL_MODULES, \"Invalid module address provided\");\n require(modules[prevModule] == address(module), \"Invalid prevModule, module pair provided\");\n modules[prevModule] = modules[module];\n modules[module] = 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 data, Enum.Operation operation)\n public\n returns (bool success)\n {\n // Only whitelisted modules are allowed.\n require(modules[msg.sender] != 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[])\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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "exportedSymbols": { "ModuleManager": [ - 1212 + 1330 ] }, - "id": 1213, + "id": 1331, "nodeType": "SourceUnit", "nodes": [ { - "id": 937, + "id": 1022, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:5" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", "file": "../common/Enum.sol", - "id": 938, + "id": 1023, "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 1660, + "scope": 1331, + "sourceUnit": 1804, "src": "24:28:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", "file": "../common/SelfAuthorized.sol", - "id": 939, + "id": 1024, "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 1736, + "scope": 1331, + "sourceUnit": 1882, "src": "53:38:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Executor.sol", "file": "./Executor.sol", - "id": 940, + "id": 1025, "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 893, + "scope": 1331, + "sourceUnit": 976, "src": "92:24:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "./Module.sol", - "id": 941, + "id": 1026, "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 936, + "scope": 1331, + "sourceUnit": 1021, "src": "117:22:5", "symbolAliases": [], "unitAlias": "" @@ -210,17 +211,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 942, + "id": 1027, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1735, + "referencedDeclaration": 1881, "src": "374:14:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", + "typeIdentifier": "t_contract$_SelfAuthorized_$1881", "typeString": "contract SelfAuthorized" } }, - "id": 943, + "id": 1028, "nodeType": "InheritanceSpecifier", "src": "374:14:5" }, @@ -228,35 +229,35 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 944, + "id": 1029, "name": "Executor", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 892, + "referencedDeclaration": 975, "src": "390:8:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Executor_$892", + "typeIdentifier": "t_contract$_Executor_$975", "typeString": "contract Executor" } }, - "id": 945, + "id": 1030, "nodeType": "InheritanceSpecifier", "src": "390:8:5" } ], "contractDependencies": [ - 892, - 1666, - 1735 + 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": 1212, + "id": 1330, "linearizedBaseContracts": [ - 1212, - 892, - 1666, - 1735 + 1330, + 975, + 1810, + 1881 ], "name": "ModuleManager", "nodeType": "ContractDefinition", @@ -264,36 +265,36 @@ { "anonymous": false, "documentation": null, - "id": 949, + "id": 1034, "name": "EnabledModule", "nodeType": "EventDefinition", "parameters": { - "id": 948, + "id": 1033, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 947, + "id": 1032, "indexed": false, "name": "module", "nodeType": "VariableDeclaration", - "scope": 949, + "scope": 1034, "src": "426:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 946, + "id": 1031, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, + "referencedDeclaration": 1020, "src": "426:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, @@ -308,36 +309,36 @@ { "anonymous": false, "documentation": null, - "id": 953, + "id": 1038, "name": "DisabledModule", "nodeType": "EventDefinition", "parameters": { - "id": 952, + "id": 1037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 951, + "id": 1036, "indexed": false, "name": "module", "nodeType": "VariableDeclaration", - "scope": 953, + "scope": 1038, "src": "467:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 950, + "id": 1035, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, + "referencedDeclaration": 1020, "src": "467:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, @@ -351,10 +352,10 @@ }, { "constant": true, - "id": 958, + "id": 1043, "name": "SENTINEL_MODULES", "nodeType": "VariableDeclaration", - "scope": 1212, + "scope": 1330, "src": "488:55:5", "stateVariable": true, "storageLocation": "default", @@ -363,10 +364,11 @@ "typeString": "address" }, "typeName": { - "id": 954, + "id": 1039, "name": "address", "nodeType": "ElementaryTypeName", "src": "488:7:5", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -378,7 +380,7 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 956, + "id": 1041, "isConstant": false, "isLValue": false, "isPure": true, @@ -401,7 +403,7 @@ "typeString": "int_const 1" } ], - "id": 955, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": true, @@ -414,7 +416,7 @@ }, "typeName": "address" }, - "id": 957, + "id": 1042, "isConstant": false, "isLValue": false, "isPure": true, @@ -424,18 +426,18 @@ "nodeType": "FunctionCall", "src": "531:12:5", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "visibility": "public" }, { "constant": false, - "id": 962, + "id": 1047, "name": "modules", "nodeType": "VariableDeclaration", - "scope": 1212, + "scope": 1330, "src": "550:45:5", "stateVariable": true, "storageLocation": "default", @@ -444,9 +446,9 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 961, + "id": 1046, "keyType": { - "id": 959, + "id": 1044, "name": "address", "nodeType": "ElementaryTypeName", "src": "559:7:5", @@ -462,10 +464,11 @@ "typeString": "mapping(address => address)" }, "valueType": { - "id": 960, + "id": 1045, "name": "address", "nodeType": "ElementaryTypeName", "src": "570:7:5", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -477,9 +480,9 @@ }, { "body": { - "id": 998, + "id": 1087, "nodeType": "Block", - "src": "673:342:5", + "src": "680:360:5", "statements": [ { "expression": { @@ -491,7 +494,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 974, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, @@ -500,26 +503,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 970, + "id": 1055, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "691:7:5", + "referencedDeclaration": 1047, + "src": "698:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 972, + "id": 1057, "indexExpression": { "argumentTypes": null, - "id": 971, + "id": 1056, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "699:16:5", + "referencedDeclaration": 1043, + "src": "706:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -530,7 +533,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "691:25:5", + "src": "698:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -540,23 +543,61 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 973, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "720:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "727:10:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "691:30:5", + "src": "698:39:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -565,14 +606,14 @@ { "argumentTypes": null, "hexValue": "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564", - "id": 975, + "id": 1062, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "723:39:5", + "src": "739:39:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", @@ -592,21 +633,21 @@ "typeString": "literal_string \"Modules have already been initialized\"" } ], - "id": 969, + "id": 1054, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "683:7:5", + "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": 976, + "id": 1063, "isConstant": false, "isLValue": false, "isPure": false, @@ -614,20 +655,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "683:80:5", + "src": "690:89:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 977, + "id": 1064, "nodeType": "ExpressionStatement", - "src": "683:80:5" + "src": "690:89:5" }, { "expression": { "argumentTypes": null, - "id": 982, + "id": 1069, "isConstant": false, "isLValue": false, "isPure": false, @@ -636,26 +677,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 978, + "id": 1065, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "773:7:5", + "referencedDeclaration": 1047, + "src": "789:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 980, + "id": 1067, "indexExpression": { "argumentTypes": null, - "id": 979, + "id": 1066, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "781:16:5", + "referencedDeclaration": 1043, + "src": "797:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -666,7 +707,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "773:25:5", + "src": "789:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -676,26 +717,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 981, + "id": 1068, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "801:16:5", + "referencedDeclaration": 1043, + "src": "817:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "773:44:5", + "src": "789:44:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 983, + "id": 1070, "nodeType": "ExpressionStatement", - "src": "773:44:5" + "src": "789:44:5" }, { "condition": { @@ -704,19 +745,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 986, + "id": 1075, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 984, + "id": 1071, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "831:2:5", + "referencedDeclaration": 1049, + "src": "847:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -726,32 +767,70 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 985, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "837:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "853:10:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "831:7:5", + "src": "847:16:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 997, + "id": 1086, "nodeType": "IfStatement", - "src": "827:181:5", + "src": "843:190:5", "trueBody": { "expression": { "argumentTypes": null, @@ -761,12 +840,12 @@ "arguments": [ { "argumentTypes": null, - "id": 989, + "id": 1078, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "952:2:5", + "referencedDeclaration": 1049, + "src": "977:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -774,12 +853,12 @@ }, { "argumentTypes": null, - "id": 990, + "id": 1079, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "956:4:5", + "referencedDeclaration": 1051, + "src": "981:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -790,18 +869,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 991, + "id": 1080, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "962:7:5", + "referencedDeclaration": 4359, + "src": "987:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 992, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": false, @@ -809,7 +888,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "962:9:5", + "src": "987:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -831,18 +910,18 @@ "typeString": "uint256" } ], - "id": 988, + "id": 1077, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "932:19:5", + "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": 993, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, @@ -850,7 +929,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "932:40:5", + "src": "957:40:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -859,14 +938,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e", - "id": 994, + "id": 1083, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "974:33:5", + "src": "999:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa", @@ -886,21 +965,21 @@ "typeString": "literal_string \"Could not finish initialization\"" } ], - "id": 987, + "id": 1076, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "924:7:5", + "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": 995, + "id": 1084, "isConstant": false, "isLValue": false, "isPure": false, @@ -908,37 +987,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "924:84:5", + "src": "949:84:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 996, + "id": 1085, "nodeType": "ExpressionStatement", - "src": "924:84:5" + "src": "949:84:5" } } ] }, "documentation": null, - "id": 999, + "id": 1088, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setupModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 967, + "id": 1052, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 964, + "id": 1049, "name": "to", "nodeType": "VariableDeclaration", - "scope": 999, + "scope": 1088, "src": "628:10:5", "stateVariable": false, "storageLocation": "default", @@ -947,10 +1025,11 @@ "typeString": "address" }, "typeName": { - "id": 963, + "id": 1048, "name": "address", "nodeType": "ElementaryTypeName", "src": "628:7:5", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -961,19 +1040,19 @@ }, { "constant": false, - "id": 966, + "id": 1051, "name": "data", "nodeType": "VariableDeclaration", - "scope": 999, - "src": "640:10:5", + "scope": 1088, + "src": "640:17:5", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 965, + "id": 1050, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "640:5:5", @@ -986,26 +1065,25 @@ "visibility": "internal" } ], - "src": "627:24:5" + "src": "627:31:5" }, - "payable": false, "returnParameters": { - "id": 968, + "id": 1053, "nodeType": "ParameterList", "parameters": [], - "src": "673:0:5" + "src": "680:0:5" }, - "scope": 1212, - "src": "606:409:5", + "scope": 1330, + "src": "606:434:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1048, + "id": 1147, "nodeType": "Block", - "src": "1257:420:5", + "src": "1282:465:5", "statements": [ { "expression": { @@ -1017,7 +1095,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1017, + "id": 1108, "isConstant": false, "isLValue": false, "isPure": false, @@ -1028,7 +1106,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1011, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, @@ -1038,14 +1116,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1008, + "id": 1097, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1337:6:5", + "referencedDeclaration": 1090, + "src": "1362:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -1053,24 +1131,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], - "id": 1007, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1329:7:5", + "src": "1354:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1009, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": false, @@ -1078,7 +1156,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1329:15:5", + "src": "1354:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1088,23 +1166,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1010, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "1348:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "1373:10:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "1329:20:5", + "src": "1354:29:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1118,7 +1234,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1016, + "id": 1107, "isConstant": false, "isLValue": false, "isPure": false, @@ -1128,14 +1244,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1013, + "id": 1104, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1361:6:5", + "referencedDeclaration": 1090, + "src": "1395:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -1143,24 +1259,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], - "id": 1012, + "id": 1103, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1353:7:5", + "src": "1387:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1014, + "id": 1105, "isConstant": false, "isLValue": false, "isPure": false, @@ -1168,7 +1284,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1353:15:5", + "src": "1387:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1178,24 +1294,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1015, + "id": 1106, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "1372:16:5", + "referencedDeclaration": 1043, + "src": "1406:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1353:35:5", + "src": "1387:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1329:59:5", + "src": "1354:68:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1204,14 +1320,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1018, + "id": 1109, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1390:33:5", + "src": "1424:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", @@ -1231,21 +1347,21 @@ "typeString": "literal_string \"Invalid module address provided\"" } ], - "id": 1006, + "id": 1095, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1321:7:5", + "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": 1019, + "id": 1110, "isConstant": false, "isLValue": false, "isPure": false, @@ -1253,15 +1369,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1321:103:5", + "src": "1346:112:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1020, + "id": 1111, "nodeType": "ExpressionStatement", - "src": "1321:103:5" + "src": "1346:112:5" }, { "expression": { @@ -1273,7 +1389,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1026, + "id": 1121, "isConstant": false, "isLValue": false, "isPure": false, @@ -1282,29 +1398,67 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1022, + "id": 1113, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1483:7:5", + "referencedDeclaration": 1047, + "src": "1517:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1024, + "id": 1117, "indexExpression": { "argumentTypes": null, - "id": 1023, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1491:6:5", + "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_contract$_Module_$935", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -1312,7 +1466,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1483:15:5", + "src": "1517:24:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1322,23 +1476,61 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1025, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "1502:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "1545:10:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "1483:20:5", + "src": "1517:38:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1347,14 +1539,14 @@ { "argumentTypes": null, "hexValue": "4d6f64756c652068617320616c7265616479206265656e206164646564", - "id": 1027, + "id": 1122, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1505:31:5", + "src": "1557:31:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", @@ -1374,21 +1566,21 @@ "typeString": "literal_string \"Module has already been added\"" } ], - "id": 1021, + "id": 1112, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1475:7:5", + "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": 1028, + "id": 1123, "isConstant": false, "isLValue": false, "isPure": false, @@ -1396,20 +1588,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1475:62:5", + "src": "1509:80:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1029, + "id": 1124, "nodeType": "ExpressionStatement", - "src": "1475:62:5" + "src": "1509:80:5" }, { "expression": { "argumentTypes": null, - "id": 1036, + "id": 1133, "isConstant": false, "isLValue": false, "isPure": false, @@ -1418,29 +1610,67 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1030, + "id": 1125, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1547:7:5", + "referencedDeclaration": 1047, + "src": "1599:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1032, + "id": 1129, "indexExpression": { "argumentTypes": null, - "id": 1031, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1555:6:5", + "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_contract$_Module_$935", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -1448,7 +1678,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1547:15:5", + "src": "1599:24:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1460,26 +1690,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1033, + "id": 1130, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1565:7:5", + "referencedDeclaration": 1047, + "src": "1626:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1035, + "id": 1132, "indexExpression": { "argumentTypes": null, - "id": 1034, + "id": 1131, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "1573:16:5", + "referencedDeclaration": 1043, + "src": "1634:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1490,26 +1720,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1565:25:5", + "src": "1626:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1547:43:5", + "src": "1599:52:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1037, + "id": 1134, "nodeType": "ExpressionStatement", - "src": "1547:43:5" + "src": "1599:52:5" }, { "expression": { "argumentTypes": null, - "id": 1042, + "id": 1141, "isConstant": false, "isLValue": false, "isPure": false, @@ -1518,26 +1748,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1038, + "id": 1135, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1600:7:5", + "referencedDeclaration": 1047, + "src": "1661:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1040, + "id": 1137, "indexExpression": { "argumentTypes": null, - "id": 1039, + "id": 1136, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "1608:16:5", + "referencedDeclaration": 1043, + "src": "1669:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1548,7 +1778,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1600:25:5", + "src": "1661:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1558,26 +1788,64 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1041, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1628:6:5", + "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_contract$_Module_$935", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "1600:34:5", + "src": "1661:43:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1043, + "id": 1142, "nodeType": "ExpressionStatement", - "src": "1600:34:5" + "src": "1661:43:5" }, { "eventCall": { @@ -1585,14 +1853,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1045, + "id": 1144, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1663:6:5", + "referencedDeclaration": 1090, + "src": "1733:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -1600,22 +1868,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], - "id": 1044, + "id": 1143, "name": "EnabledModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "1649:13:5", + "referencedDeclaration": 1034, + "src": "1719:13:5", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$1020_$returns$__$", "typeString": "function (contract Module)" } }, - "id": 1046, + "id": 1145, "isConstant": false, "isLValue": false, "isPure": false, @@ -1623,72 +1891,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1649:21:5", + "src": "1719:21:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1047, + "id": 1146, "nodeType": "EmitStatement", - "src": "1644:26:5" + "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": 1049, + "id": 1148, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1004, + "id": 1093, "modifierName": { "argumentTypes": null, - "id": 1003, + "id": 1092, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "1242:10:5", + "referencedDeclaration": 1880, + "src": "1267:10:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1242:10:5" + "src": "1267:10:5" } ], "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1002, + "id": 1091, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1001, + "id": 1090, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1049, - "src": "1204:13:5", + "scope": 1148, + "src": "1229:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1000, + "id": 1089, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "1204:6:5", + "referencedDeclaration": 1020, + "src": "1229:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, @@ -1696,26 +1963,25 @@ "visibility": "internal" } ], - "src": "1203:15:5" + "src": "1228:15:5" }, - "payable": false, "returnParameters": { - "id": 1005, + "id": 1094, "nodeType": "ParameterList", "parameters": [], - "src": "1257:0:5" + "src": "1282:0:5" }, - "scope": 1212, - "src": "1182:495:5", + "scope": 1330, + "src": "1207:540:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1102, + "id": 1213, "nodeType": "Block", - "src": "2033:416:5", + "src": "2103:470:5", "statements": [ { "expression": { @@ -1727,7 +1993,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1069, + "id": 1170, "isConstant": false, "isLValue": false, "isPure": false, @@ -1738,7 +2004,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1063, + "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, @@ -1748,14 +2014,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1060, + "id": 1159, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2141:6:5", + "referencedDeclaration": 1152, + "src": "2211:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -1763,24 +2029,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], - "id": 1059, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2133:7:5", + "src": "2203:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1061, + "id": 1160, "isConstant": false, "isLValue": false, "isPure": false, @@ -1788,7 +2054,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2133:15:5", + "src": "2203:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1798,23 +2064,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1062, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "2152:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2222:10:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "2133:20:5", + "src": "2203:29:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1828,7 +2132,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1068, + "id": 1169, "isConstant": false, "isLValue": false, "isPure": false, @@ -1838,14 +2142,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1065, + "id": 1166, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2165:6:5", + "referencedDeclaration": 1152, + "src": "2244:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -1853,24 +2157,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], - "id": 1064, + "id": 1165, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2157:7:5", + "src": "2236:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1066, + "id": 1167, "isConstant": false, "isLValue": false, "isPure": false, @@ -1878,7 +2182,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2157:15:5", + "src": "2236:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1888,24 +2192,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1067, + "id": 1168, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "2176:16:5", + "referencedDeclaration": 1043, + "src": "2255:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2157:35:5", + "src": "2236:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2133:59:5", + "src": "2203:68:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1914,14 +2218,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1070, + "id": 1171, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2194:33:5", + "src": "2273:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", @@ -1941,21 +2245,21 @@ "typeString": "literal_string \"Invalid module address provided\"" } ], - "id": 1058, + "id": 1157, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2125:7:5", + "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": 1071, + "id": 1172, "isConstant": false, "isLValue": false, "isPure": false, @@ -1963,15 +2267,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2125:103:5", + "src": "2195:112:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1072, + "id": 1173, "nodeType": "ExpressionStatement", - "src": "2125:103:5" + "src": "2195:112:5" }, { "expression": { @@ -1983,7 +2287,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1080, + "id": 1183, "isConstant": false, "isLValue": false, "isPure": false, @@ -1992,29 +2296,67 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1074, + "id": 1175, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2246:7:5", + "referencedDeclaration": 1047, + "src": "2325:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1076, + "id": 1179, "indexExpression": { "argumentTypes": null, - "id": 1075, - "name": "prevModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "2254:10:5", + "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_contract$_Module_$935", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -2022,7 +2364,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2246:19:5", + "src": "2325:28:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2035,14 +2377,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1078, + "id": 1181, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2277:6:5", + "referencedDeclaration": 1152, + "src": "2365:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -2050,24 +2392,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], - "id": 1077, + "id": 1180, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2269:7:5", + "src": "2357:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1079, + "id": 1182, "isConstant": false, "isLValue": false, "isPure": false, @@ -2075,13 +2417,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2269:15:5", + "src": "2357:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2246:38:5", + "src": "2325:47:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2090,14 +2432,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564", - "id": 1081, + "id": 1184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2286:42:5", + "src": "2374:42:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e", @@ -2117,21 +2459,21 @@ "typeString": "literal_string \"Invalid prevModule, module pair provided\"" } ], - "id": 1073, + "id": 1174, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2238:7:5", + "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": 1082, + "id": 1185, "isConstant": false, "isLValue": false, "isPure": false, @@ -2139,20 +2481,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2238:91:5", + "src": "2317:100:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1083, + "id": 1186, "nodeType": "ExpressionStatement", - "src": "2238:91:5" + "src": "2317:100:5" }, { "expression": { "argumentTypes": null, - "id": 1090, + "id": 1197, "isConstant": false, "isLValue": false, "isPure": false, @@ -2161,29 +2503,67 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1084, + "id": 1187, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2339:7:5", + "referencedDeclaration": 1047, + "src": "2427:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1086, + "id": 1191, "indexExpression": { "argumentTypes": null, - "id": 1085, - "name": "prevModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "2347:10:5", + "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_contract$_Module_$935", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -2191,7 +2571,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2339:19:5", + "src": "2427:28:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2203,29 +2583,67 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1087, + "id": 1192, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2361:7:5", + "referencedDeclaration": 1047, + "src": "2458:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1089, + "id": 1196, "indexExpression": { "argumentTypes": null, - "id": 1088, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2369:6:5", + "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_contract$_Module_$935", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -2233,26 +2651,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2361:15:5", + "src": "2458:24:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2339:37:5", + "src": "2427:55:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1091, + "id": 1198, "nodeType": "ExpressionStatement", - "src": "2339:37:5" + "src": "2427:55:5" }, { "expression": { "argumentTypes": null, - "id": 1096, + "id": 1207, "isConstant": false, "isLValue": false, "isPure": false, @@ -2261,29 +2679,67 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1092, + "id": 1199, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2386:7:5", + "referencedDeclaration": 1047, + "src": "2492:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1094, + "id": 1203, "indexExpression": { "argumentTypes": null, - "id": 1093, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2394:6:5", + "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_contract$_Module_$935", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -2291,7 +2747,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2386:15:5", + "src": "2492:24:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2301,31 +2757,69 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "hexValue": "30", - "id": 1095, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "2404:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2519:10:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "2386:19:5", + "src": "2492:37:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1097, + "id": 1208, "nodeType": "ExpressionStatement", - "src": "2386:19:5" + "src": "2492:37:5" }, { "eventCall": { @@ -2333,14 +2827,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1099, + "id": 1210, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2435:6:5", + "referencedDeclaration": 1152, + "src": "2559:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -2348,22 +2842,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], - "id": 1098, + "id": 1209, "name": "DisabledModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "2420:14:5", + "referencedDeclaration": 1038, + "src": "2544:14:5", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$1020_$returns$__$", "typeString": "function (contract Module)" } }, - "id": 1100, + "id": 1211, "isConstant": false, "isLValue": false, "isPure": false, @@ -2371,72 +2865,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2420:22:5", + "src": "2544:22:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1101, + "id": 1212, "nodeType": "EmitStatement", - "src": "2415:27:5" + "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": 1103, + "id": 1214, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1056, + "id": 1155, "modifierName": { "argumentTypes": null, - "id": 1055, + "id": 1154, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "2018:10:5", + "referencedDeclaration": 1880, + "src": "2088:10:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2018:10:5" + "src": "2088:10:5" } ], "name": "disableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1054, + "id": 1153, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1051, + "id": 1150, "name": "prevModule", "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "1961:17:5", + "scope": 1214, + "src": "2031:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1050, + "id": 1149, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "1961:6:5", + "referencedDeclaration": 1020, + "src": "2031:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, @@ -2445,26 +2938,26 @@ }, { "constant": false, - "id": 1053, + "id": 1152, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "1980:13:5", + "scope": 1214, + "src": "2050:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1052, + "id": 1151, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "1980:6:5", + "referencedDeclaration": 1020, + "src": "2050:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, @@ -2472,26 +2965,25 @@ "visibility": "internal" } ], - "src": "1960:34:5" + "src": "2030:34:5" }, - "payable": false, "returnParameters": { - "id": 1057, + "id": 1156, "nodeType": "ParameterList", "parameters": [], - "src": "2033:0:5" + "src": "2103:0:5" }, - "scope": 1212, - "src": "1938:511:5", + "scope": 1330, + "src": "2008:565:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1137, + "id": 1255, "nodeType": "Block", - "src": "2935:279:5", + "src": "3066:322:5", "statements": [ { "expression": { @@ -2500,46 +2992,41 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "id": 1122, + "id": 1240, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1117, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3002:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 1120, - "indexExpression": { + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1118, + "id": 1228, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "3010:3:5", + "referencedDeclaration": 4366, + "src": "3133:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1119, + "id": 1229, "isConstant": false, "isLValue": false, "isPure": false, @@ -2547,44 +3034,167 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3010:10:5", + "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" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3002:19:5", + "src": "3133:30:5", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": "&&", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1121, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1239, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "3025:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "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" + } }, - "value": "0" + "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": "3002:24:5", + "src": "3133:67:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2593,14 +3203,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65", - "id": 1123, + "id": 1241, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3028:50:5", + "src": "3202:50:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", @@ -2620,21 +3230,21 @@ "typeString": "literal_string \"Method can only be called from an enabled module\"" } ], - "id": 1116, + "id": 1227, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2994:7:5", + "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": 1124, + "id": 1242, "isConstant": false, "isLValue": false, "isPure": false, @@ -2642,32 +3252,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2994:85:5", + "src": "3125:128:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1125, + "id": 1243, "nodeType": "ExpressionStatement", - "src": "2994:85:5" + "src": "3125:128:5" }, { "expression": { "argumentTypes": null, - "id": 1135, + "id": 1253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1126, + "id": 1244, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1114, - "src": "3151:7:5", + "referencedDeclaration": 1225, + "src": "3325:7:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2680,12 +3290,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1128, + "id": 1246, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1105, - "src": "3169:2:5", + "referencedDeclaration": 1216, + "src": "3343:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2693,12 +3303,12 @@ }, { "argumentTypes": null, - "id": 1129, + "id": 1247, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "3173:5:5", + "referencedDeclaration": 1218, + "src": "3347:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2706,12 +3316,12 @@ }, { "argumentTypes": null, - "id": 1130, + "id": 1248, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "3180:4:5", + "referencedDeclaration": 1220, + "src": "3354:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2719,14 +3329,14 @@ }, { "argumentTypes": null, - "id": 1131, + "id": 1249, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "3186:9:5", + "referencedDeclaration": 1222, + "src": "3360:9:5", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -2735,18 +3345,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1132, + "id": 1250, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "3197:7:5", + "referencedDeclaration": 4359, + "src": "3371:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 1133, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, @@ -2754,7 +3364,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3197:9:5", + "src": "3371:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2776,7 +3386,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -2784,18 +3394,18 @@ "typeString": "uint256" } ], - "id": 1127, + "id": 1245, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "3161:7:5", + "referencedDeclaration": 937, + "src": "3335:7:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", + "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": 1134, + "id": 1252, "isConstant": false, "isLValue": false, "isPure": false, @@ -2803,43 +3413,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3161:46:5", + "src": "3335:46:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3151:56:5", + "src": "3325:56:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1136, + "id": 1254, "nodeType": "ExpressionStatement", - "src": "3151:56:5" + "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": 1138, + "id": 1256, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "execTransactionFromModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1112, + "id": 1223, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1105, + "id": 1216, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2820:10:5", + "scope": 1256, + "src": "2944:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2847,10 +3456,11 @@ "typeString": "address" }, "typeName": { - "id": 1104, + "id": 1215, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2820:7:5", + "src": "2944:7:5", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2861,11 +3471,11 @@ }, { "constant": false, - "id": 1107, + "id": 1218, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2832:13:5", + "scope": 1256, + "src": "2956:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2873,10 +3483,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1106, + "id": 1217, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2832:7:5", + "src": "2956:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2887,22 +3497,22 @@ }, { "constant": false, - "id": 1109, + "id": 1220, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2847:10:5", + "scope": 1256, + "src": "2971:17:5", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 1108, + "id": 1219, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2847:5:5", + "src": "2971:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2913,26 +3523,26 @@ }, { "constant": false, - "id": 1111, + "id": 1222, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2859:24:5", + "scope": 1256, + "src": "2990:24:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 1110, + "id": 1221, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "2859:14:5", + "referencedDeclaration": 1802, + "src": "2990:14:5", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -2940,20 +3550,19 @@ "visibility": "internal" } ], - "src": "2819:65:5" + "src": "2943:72:5" }, - "payable": false, "returnParameters": { - "id": 1115, + "id": 1226, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1114, + "id": 1225, "name": "success", "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2917:12:5", + "scope": 1256, + "src": "3048:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2961,10 +3570,10 @@ "typeString": "bool" }, "typeName": { - "id": 1113, + "id": 1224, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2917:4:5", + "src": "3048:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2974,32 +3583,32 @@ "visibility": "internal" } ], - "src": "2916:14:5" + "src": "3047:14:5" }, - "scope": 1212, - "src": "2785:429:5", + "scope": 1330, + "src": "2909:479:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1210, + "id": 1328, "nodeType": "Block", - "src": "3375:656:5", + "src": "3556:656:5", "statements": [ { "assignments": [ - 1145 + 1263 ], "declarations": [ { "constant": false, - "id": 1145, + "id": 1263, "name": "moduleCount", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3419:19:5", + "scope": 1328, + "src": "3600:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3007,10 +3616,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1144, + "id": 1262, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3419:7:5", + "src": "3600:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3020,18 +3629,18 @@ "visibility": "internal" } ], - "id": 1147, + "id": 1265, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1146, + "id": 1264, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3441:1:5", + "src": "3622:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3040,20 +3649,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3419:23:5" + "src": "3600:23:5" }, { "assignments": [ - 1149 + 1267 ], "declarations": [ { "constant": false, - "id": 1149, + "id": 1267, "name": "currentModule", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3452:21:5", + "scope": 1328, + "src": "3633:21:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3061,10 +3670,11 @@ "typeString": "address" }, "typeName": { - "id": 1148, + "id": 1266, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3452:7:5", + "src": "3633:7:5", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3074,31 +3684,31 @@ "visibility": "internal" } ], - "id": 1153, + "id": 1271, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1150, + "id": 1268, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3476:7:5", + "referencedDeclaration": 1047, + "src": "3657:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1152, + "id": 1270, "indexExpression": { "argumentTypes": null, - "id": 1151, + "id": 1269, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3484:16:5", + "referencedDeclaration": 1043, + "src": "3665:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3109,37 +3719,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3476:25:5", + "src": "3657:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "3452:49:5" + "src": "3633:49:5" }, { "body": { - "id": 1166, + "id": 1284, "nodeType": "Block", - "src": "3552:91:5", + "src": "3733:91:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 1161, + "id": 1279, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1157, + "id": 1275, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3566:13:5", + "referencedDeclaration": 1267, + "src": "3747:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3151,26 +3761,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1158, + "id": 1276, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3582:7:5", + "referencedDeclaration": 1047, + "src": "3763:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1160, + "id": 1278, "indexExpression": { "argumentTypes": null, - "id": 1159, + "id": 1277, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3590:13:5", + "referencedDeclaration": 1267, + "src": "3771:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3181,26 +3791,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3582:22:5", + "src": "3763:22:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3566:38:5", + "src": "3747:38:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1162, + "id": 1280, "nodeType": "ExpressionStatement", - "src": "3566:38:5" + "src": "3747:38:5" }, { "expression": { "argumentTypes": null, - "id": 1164, + "id": 1282, "isConstant": false, "isLValue": false, "isPure": false, @@ -3208,15 +3818,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3618:14:5", + "src": "3799:14:5", "subExpression": { "argumentTypes": null, - "id": 1163, + "id": 1281, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3618:11:5", + "referencedDeclaration": 1263, + "src": "3799:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3227,9 +3837,9 @@ "typeString": "uint256" } }, - "id": 1165, + "id": 1283, "nodeType": "ExpressionStatement", - "src": "3618:14:5" + "src": "3799:14:5" } ] }, @@ -3239,19 +3849,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1156, + "id": 1274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1154, + "id": 1272, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3517:13:5", + "referencedDeclaration": 1267, + "src": "3698:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3261,39 +3871,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1155, + "id": 1273, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3534:16:5", + "referencedDeclaration": 1043, + "src": "3715:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3517:33:5", + "src": "3698:33:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1167, + "id": 1285, "nodeType": "WhileStatement", - "src": "3511:132:5" + "src": "3692:132:5" }, { "assignments": [ - 1171 + 1289 ], "declarations": [ { "constant": false, - "id": 1171, + "id": 1289, "name": "array", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3652:22:5", + "scope": 1328, + "src": "3833:22:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3302,19 +3912,19 @@ }, "typeName": { "baseType": { - "id": 1169, + "id": 1287, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3652:7:5", + "src": "3833:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1170, + "id": 1288, "length": null, "nodeType": "ArrayTypeName", - "src": "3652:9:5", + "src": "3833:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -3324,18 +3934,18 @@ "visibility": "internal" } ], - "id": 1177, + "id": 1295, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1175, + "id": 1293, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3691:11:5", + "referencedDeclaration": 1263, + "src": "3872:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3349,39 +3959,40 @@ "typeString": "uint256" } ], - "id": 1174, + "id": 1292, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3677:13:5", + "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": 1172, + "id": 1290, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3681:7:5", + "src": "3862:7:5", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1173, + "id": 1291, "length": null, "nodeType": "ArrayTypeName", - "src": "3681:9:5", + "src": "3862:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 1176, + "id": 1294, "isConstant": false, "isLValue": false, "isPure": false, @@ -3389,31 +4000,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3677:26:5", + "src": "3858:26:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "3652:51:5" + "src": "3833:51:5" }, { "expression": { "argumentTypes": null, - "id": 1180, + "id": 1298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1178, + "id": 1296, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3747:11:5", + "referencedDeclaration": 1263, + "src": "3928:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3424,14 +4035,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1179, + "id": 1297, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3761:1:5", + "src": "3942:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3439,32 +4050,32 @@ }, "value": "0" }, - "src": "3747:15:5", + "src": "3928:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1181, + "id": 1299, "nodeType": "ExpressionStatement", - "src": "3747:15:5" + "src": "3928:15:5" }, { "expression": { "argumentTypes": null, - "id": 1186, + "id": 1304, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1182, + "id": 1300, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3772:13:5", + "referencedDeclaration": 1267, + "src": "3953:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3476,26 +4087,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1183, + "id": 1301, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3788:7:5", + "referencedDeclaration": 1047, + "src": "3969:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1185, + "id": 1303, "indexExpression": { "argumentTypes": null, - "id": 1184, + "id": 1302, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3796:16:5", + "referencedDeclaration": 1043, + "src": "3977:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3506,32 +4117,32 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3788:25:5", + "src": "3969:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3772:41:5", + "src": "3953:41:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1187, + "id": 1305, "nodeType": "ExpressionStatement", - "src": "3772:41:5" + "src": "3953:41:5" }, { "body": { - "id": 1206, + "id": 1324, "nodeType": "Block", - "src": "3864:139:5", + "src": "4045:139:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 1195, + "id": 1313, "isConstant": false, "isLValue": false, "isPure": false, @@ -3540,26 +4151,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1191, + "id": 1309, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "3878:5:5", + "referencedDeclaration": 1289, + "src": "4059:5:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1193, + "id": 1311, "indexExpression": { "argumentTypes": null, - "id": 1192, + "id": 1310, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3884:11:5", + "referencedDeclaration": 1263, + "src": "4065:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3570,7 +4181,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3878:18:5", + "src": "4059:18:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3580,43 +4191,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1194, + "id": 1312, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3899:13:5", + "referencedDeclaration": 1267, + "src": "4080:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3878:34:5", + "src": "4059:34:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1196, + "id": 1314, "nodeType": "ExpressionStatement", - "src": "3878:34:5" + "src": "4059:34:5" }, { "expression": { "argumentTypes": null, - "id": 1201, + "id": 1319, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1197, + "id": 1315, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3926:13:5", + "referencedDeclaration": 1267, + "src": "4107:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3628,26 +4239,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1198, + "id": 1316, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3942:7:5", + "referencedDeclaration": 1047, + "src": "4123:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1200, + "id": 1318, "indexExpression": { "argumentTypes": null, - "id": 1199, + "id": 1317, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3950:13:5", + "referencedDeclaration": 1267, + "src": "4131:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3658,26 +4269,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3942:22:5", + "src": "4123:22:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3926:38:5", + "src": "4107:38:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1202, + "id": 1320, "nodeType": "ExpressionStatement", - "src": "3926:38:5" + "src": "4107:38:5" }, { "expression": { "argumentTypes": null, - "id": 1204, + "id": 1322, "isConstant": false, "isLValue": false, "isPure": false, @@ -3685,15 +4296,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3978:14:5", + "src": "4159:14:5", "subExpression": { "argumentTypes": null, - "id": 1203, + "id": 1321, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3978:11:5", + "referencedDeclaration": 1263, + "src": "4159:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3704,9 +4315,9 @@ "typeString": "uint256" } }, - "id": 1205, + "id": 1323, "nodeType": "ExpressionStatement", - "src": "3978:14:5" + "src": "4159:14:5" } ] }, @@ -3716,19 +4327,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1190, + "id": 1308, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1188, + "id": 1306, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3829:13:5", + "referencedDeclaration": 1267, + "src": "4010:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3738,95 +4349,94 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1189, + "id": 1307, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3846:16:5", + "referencedDeclaration": 1043, + "src": "4027:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3829:33:5", + "src": "4010:33:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1207, + "id": 1325, "nodeType": "WhileStatement", - "src": "3823:180:5" + "src": "4004:180:5" }, { "expression": { "argumentTypes": null, - "id": 1208, + "id": 1326, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "4019:5:5", + "referencedDeclaration": 1289, + "src": "4200:5:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 1143, - "id": 1209, + "functionReturnParameters": 1261, + "id": 1327, "nodeType": "Return", - "src": "4012:12:5" + "src": "4193:12:5" } ] }, "documentation": "@dev Returns array of modules.\n @return Array of modules.", - "id": 1211, + "id": 1329, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "getModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 1139, + "id": 1257, "nodeType": "ParameterList", "parameters": [], - "src": "3312:2:5" + "src": "3486:2:5" }, - "payable": false, "returnParameters": { - "id": 1143, + "id": 1261, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1142, + "id": 1260, "name": "", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3360:9:5", + "scope": 1329, + "src": "3534:16:5", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 1140, + "id": 1258, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3360:7:5", + "src": "3534:7:5", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1141, + "id": 1259, "length": null, "nodeType": "ArrayTypeName", - "src": "3360:9:5", + "src": "3534:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -3836,81 +4446,82 @@ "visibility": "internal" } ], - "src": "3359:11:5" + "src": "3533:18:5" }, - "scope": 1212, - "src": "3293:738:5", + "scope": 1330, + "src": "3467:745:5", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1213, - "src": "348:3685:5" + "scope": 1331, + "src": "348:3866:5" } ], - "src": "0:4034:5" + "src": "0:4215:5" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "exportedSymbols": { "ModuleManager": [ - 1212 + 1330 ] }, - "id": 1213, + "id": 1331, "nodeType": "SourceUnit", "nodes": [ { - "id": 937, + "id": 1022, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:5" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", "file": "../common/Enum.sol", - "id": 938, + "id": 1023, "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 1660, + "scope": 1331, + "sourceUnit": 1804, "src": "24:28:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", "file": "../common/SelfAuthorized.sol", - "id": 939, + "id": 1024, "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 1736, + "scope": 1331, + "sourceUnit": 1882, "src": "53:38:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Executor.sol", "file": "./Executor.sol", - "id": 940, + "id": 1025, "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 893, + "scope": 1331, + "sourceUnit": 976, "src": "92:24:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "./Module.sol", - "id": 941, + "id": 1026, "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 936, + "scope": 1331, + "sourceUnit": 1021, "src": "117:22:5", "symbolAliases": [], "unitAlias": "" @@ -3921,17 +4532,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 942, + "id": 1027, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1735, + "referencedDeclaration": 1881, "src": "374:14:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", + "typeIdentifier": "t_contract$_SelfAuthorized_$1881", "typeString": "contract SelfAuthorized" } }, - "id": 943, + "id": 1028, "nodeType": "InheritanceSpecifier", "src": "374:14:5" }, @@ -3939,35 +4550,35 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 944, + "id": 1029, "name": "Executor", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 892, + "referencedDeclaration": 975, "src": "390:8:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Executor_$892", + "typeIdentifier": "t_contract$_Executor_$975", "typeString": "contract Executor" } }, - "id": 945, + "id": 1030, "nodeType": "InheritanceSpecifier", "src": "390:8:5" } ], "contractDependencies": [ - 892, - 1666, - 1735 + 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": 1212, + "id": 1330, "linearizedBaseContracts": [ - 1212, - 892, - 1666, - 1735 + 1330, + 975, + 1810, + 1881 ], "name": "ModuleManager", "nodeType": "ContractDefinition", @@ -3975,36 +4586,36 @@ { "anonymous": false, "documentation": null, - "id": 949, + "id": 1034, "name": "EnabledModule", "nodeType": "EventDefinition", "parameters": { - "id": 948, + "id": 1033, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 947, + "id": 1032, "indexed": false, "name": "module", "nodeType": "VariableDeclaration", - "scope": 949, + "scope": 1034, "src": "426:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 946, + "id": 1031, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, + "referencedDeclaration": 1020, "src": "426:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, @@ -4019,36 +4630,36 @@ { "anonymous": false, "documentation": null, - "id": 953, + "id": 1038, "name": "DisabledModule", "nodeType": "EventDefinition", "parameters": { - "id": 952, + "id": 1037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 951, + "id": 1036, "indexed": false, "name": "module", "nodeType": "VariableDeclaration", - "scope": 953, + "scope": 1038, "src": "467:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 950, + "id": 1035, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, + "referencedDeclaration": 1020, "src": "467:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, @@ -4062,10 +4673,10 @@ }, { "constant": true, - "id": 958, + "id": 1043, "name": "SENTINEL_MODULES", "nodeType": "VariableDeclaration", - "scope": 1212, + "scope": 1330, "src": "488:55:5", "stateVariable": true, "storageLocation": "default", @@ -4074,10 +4685,11 @@ "typeString": "address" }, "typeName": { - "id": 954, + "id": 1039, "name": "address", "nodeType": "ElementaryTypeName", "src": "488:7:5", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4089,7 +4701,7 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 956, + "id": 1041, "isConstant": false, "isLValue": false, "isPure": true, @@ -4112,7 +4724,7 @@ "typeString": "int_const 1" } ], - "id": 955, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": true, @@ -4125,7 +4737,7 @@ }, "typeName": "address" }, - "id": 957, + "id": 1042, "isConstant": false, "isLValue": false, "isPure": true, @@ -4135,18 +4747,18 @@ "nodeType": "FunctionCall", "src": "531:12:5", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "visibility": "public" }, { "constant": false, - "id": 962, + "id": 1047, "name": "modules", "nodeType": "VariableDeclaration", - "scope": 1212, + "scope": 1330, "src": "550:45:5", "stateVariable": true, "storageLocation": "default", @@ -4155,9 +4767,9 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 961, + "id": 1046, "keyType": { - "id": 959, + "id": 1044, "name": "address", "nodeType": "ElementaryTypeName", "src": "559:7:5", @@ -4173,10 +4785,11 @@ "typeString": "mapping(address => address)" }, "valueType": { - "id": 960, + "id": 1045, "name": "address", "nodeType": "ElementaryTypeName", "src": "570:7:5", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4188,9 +4801,9 @@ }, { "body": { - "id": 998, + "id": 1087, "nodeType": "Block", - "src": "673:342:5", + "src": "680:360:5", "statements": [ { "expression": { @@ -4202,7 +4815,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 974, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, @@ -4211,26 +4824,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 970, + "id": 1055, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "691:7:5", + "referencedDeclaration": 1047, + "src": "698:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 972, + "id": 1057, "indexExpression": { "argumentTypes": null, - "id": 971, + "id": 1056, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "699:16:5", + "referencedDeclaration": 1043, + "src": "706:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4241,7 +4854,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "691:25:5", + "src": "698:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4251,23 +4864,61 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 973, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "720:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "727:10:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "691:30:5", + "src": "698:39:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4276,14 +4927,14 @@ { "argumentTypes": null, "hexValue": "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564", - "id": 975, + "id": 1062, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "723:39:5", + "src": "739:39:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", @@ -4303,21 +4954,21 @@ "typeString": "literal_string \"Modules have already been initialized\"" } ], - "id": 969, + "id": 1054, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "683:7:5", + "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": 976, + "id": 1063, "isConstant": false, "isLValue": false, "isPure": false, @@ -4325,20 +4976,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "683:80:5", + "src": "690:89:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 977, + "id": 1064, "nodeType": "ExpressionStatement", - "src": "683:80:5" + "src": "690:89:5" }, { "expression": { "argumentTypes": null, - "id": 982, + "id": 1069, "isConstant": false, "isLValue": false, "isPure": false, @@ -4347,26 +4998,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 978, + "id": 1065, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "773:7:5", + "referencedDeclaration": 1047, + "src": "789:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 980, + "id": 1067, "indexExpression": { "argumentTypes": null, - "id": 979, + "id": 1066, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "781:16:5", + "referencedDeclaration": 1043, + "src": "797:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4377,7 +5028,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "773:25:5", + "src": "789:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4387,26 +5038,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 981, + "id": 1068, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "801:16:5", + "referencedDeclaration": 1043, + "src": "817:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "773:44:5", + "src": "789:44:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 983, + "id": 1070, "nodeType": "ExpressionStatement", - "src": "773:44:5" + "src": "789:44:5" }, { "condition": { @@ -4415,19 +5066,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 986, + "id": 1075, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 984, + "id": 1071, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "831:2:5", + "referencedDeclaration": 1049, + "src": "847:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4437,32 +5088,70 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 985, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "837:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "853:10:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "831:7:5", + "src": "847:16:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 997, + "id": 1086, "nodeType": "IfStatement", - "src": "827:181:5", + "src": "843:190:5", "trueBody": { "expression": { "argumentTypes": null, @@ -4472,12 +5161,12 @@ "arguments": [ { "argumentTypes": null, - "id": 989, + "id": 1078, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "952:2:5", + "referencedDeclaration": 1049, + "src": "977:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4485,12 +5174,12 @@ }, { "argumentTypes": null, - "id": 990, + "id": 1079, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "956:4:5", + "referencedDeclaration": 1051, + "src": "981:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4501,18 +5190,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 991, + "id": 1080, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "962:7:5", + "referencedDeclaration": 4359, + "src": "987:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 992, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": false, @@ -4520,7 +5209,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "962:9:5", + "src": "987:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4542,18 +5231,18 @@ "typeString": "uint256" } ], - "id": 988, + "id": 1077, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "932:19:5", + "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": 993, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, @@ -4561,7 +5250,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "932:40:5", + "src": "957:40:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4570,14 +5259,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e", - "id": 994, + "id": 1083, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "974:33:5", + "src": "999:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa", @@ -4597,21 +5286,21 @@ "typeString": "literal_string \"Could not finish initialization\"" } ], - "id": 987, + "id": 1076, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "924:7:5", + "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": 995, + "id": 1084, "isConstant": false, "isLValue": false, "isPure": false, @@ -4619,37 +5308,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "924:84:5", + "src": "949:84:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 996, + "id": 1085, "nodeType": "ExpressionStatement", - "src": "924:84:5" + "src": "949:84:5" } } ] }, "documentation": null, - "id": 999, + "id": 1088, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setupModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 967, + "id": 1052, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 964, + "id": 1049, "name": "to", "nodeType": "VariableDeclaration", - "scope": 999, + "scope": 1088, "src": "628:10:5", "stateVariable": false, "storageLocation": "default", @@ -4658,10 +5346,11 @@ "typeString": "address" }, "typeName": { - "id": 963, + "id": 1048, "name": "address", "nodeType": "ElementaryTypeName", "src": "628:7:5", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4672,19 +5361,19 @@ }, { "constant": false, - "id": 966, + "id": 1051, "name": "data", "nodeType": "VariableDeclaration", - "scope": 999, - "src": "640:10:5", + "scope": 1088, + "src": "640:17:5", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 965, + "id": 1050, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "640:5:5", @@ -4697,26 +5386,25 @@ "visibility": "internal" } ], - "src": "627:24:5" + "src": "627:31:5" }, - "payable": false, "returnParameters": { - "id": 968, + "id": 1053, "nodeType": "ParameterList", "parameters": [], - "src": "673:0:5" + "src": "680:0:5" }, - "scope": 1212, - "src": "606:409:5", + "scope": 1330, + "src": "606:434:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1048, + "id": 1147, "nodeType": "Block", - "src": "1257:420:5", + "src": "1282:465:5", "statements": [ { "expression": { @@ -4728,7 +5416,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1017, + "id": 1108, "isConstant": false, "isLValue": false, "isPure": false, @@ -4739,7 +5427,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1011, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, @@ -4749,14 +5437,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1008, + "id": 1097, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1337:6:5", + "referencedDeclaration": 1090, + "src": "1362:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -4764,24 +5452,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], - "id": 1007, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1329:7:5", + "src": "1354:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1009, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": false, @@ -4789,7 +5477,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1329:15:5", + "src": "1354:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4799,23 +5487,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1010, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "1348:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "1373:10:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "1329:20:5", + "src": "1354:29:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4829,7 +5555,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1016, + "id": 1107, "isConstant": false, "isLValue": false, "isPure": false, @@ -4839,14 +5565,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1013, + "id": 1104, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1361:6:5", + "referencedDeclaration": 1090, + "src": "1395:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -4854,24 +5580,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], - "id": 1012, + "id": 1103, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1353:7:5", + "src": "1387:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1014, + "id": 1105, "isConstant": false, "isLValue": false, "isPure": false, @@ -4879,7 +5605,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1353:15:5", + "src": "1387:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4889,24 +5615,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1015, + "id": 1106, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "1372:16:5", + "referencedDeclaration": 1043, + "src": "1406:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1353:35:5", + "src": "1387:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1329:59:5", + "src": "1354:68:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4915,14 +5641,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1018, + "id": 1109, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1390:33:5", + "src": "1424:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", @@ -4942,21 +5668,21 @@ "typeString": "literal_string \"Invalid module address provided\"" } ], - "id": 1006, + "id": 1095, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1321:7:5", + "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": 1019, + "id": 1110, "isConstant": false, "isLValue": false, "isPure": false, @@ -4964,15 +5690,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1321:103:5", + "src": "1346:112:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1020, + "id": 1111, "nodeType": "ExpressionStatement", - "src": "1321:103:5" + "src": "1346:112:5" }, { "expression": { @@ -4984,7 +5710,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1026, + "id": 1121, "isConstant": false, "isLValue": false, "isPure": false, @@ -4993,29 +5719,67 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1022, + "id": 1113, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1483:7:5", + "referencedDeclaration": 1047, + "src": "1517:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1024, + "id": 1117, "indexExpression": { "argumentTypes": null, - "id": 1023, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1491:6:5", + "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_contract$_Module_$935", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -5023,7 +5787,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1483:15:5", + "src": "1517:24:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5033,23 +5797,61 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1025, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "1502:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "1545:10:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "1483:20:5", + "src": "1517:38:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5058,14 +5860,14 @@ { "argumentTypes": null, "hexValue": "4d6f64756c652068617320616c7265616479206265656e206164646564", - "id": 1027, + "id": 1122, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1505:31:5", + "src": "1557:31:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", @@ -5085,21 +5887,21 @@ "typeString": "literal_string \"Module has already been added\"" } ], - "id": 1021, + "id": 1112, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1475:7:5", + "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": 1028, + "id": 1123, "isConstant": false, "isLValue": false, "isPure": false, @@ -5107,20 +5909,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1475:62:5", + "src": "1509:80:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1029, + "id": 1124, "nodeType": "ExpressionStatement", - "src": "1475:62:5" + "src": "1509:80:5" }, { "expression": { "argumentTypes": null, - "id": 1036, + "id": 1133, "isConstant": false, "isLValue": false, "isPure": false, @@ -5129,29 +5931,67 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1030, + "id": 1125, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1547:7:5", + "referencedDeclaration": 1047, + "src": "1599:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1032, + "id": 1129, "indexExpression": { "argumentTypes": null, - "id": 1031, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1555:6:5", + "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_contract$_Module_$935", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -5159,7 +5999,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1547:15:5", + "src": "1599:24:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5171,26 +6011,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1033, + "id": 1130, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1565:7:5", + "referencedDeclaration": 1047, + "src": "1626:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1035, + "id": 1132, "indexExpression": { "argumentTypes": null, - "id": 1034, + "id": 1131, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "1573:16:5", + "referencedDeclaration": 1043, + "src": "1634:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5201,26 +6041,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1565:25:5", + "src": "1626:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1547:43:5", + "src": "1599:52:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1037, + "id": 1134, "nodeType": "ExpressionStatement", - "src": "1547:43:5" + "src": "1599:52:5" }, { "expression": { "argumentTypes": null, - "id": 1042, + "id": 1141, "isConstant": false, "isLValue": false, "isPure": false, @@ -5229,26 +6069,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1038, + "id": 1135, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1600:7:5", + "referencedDeclaration": 1047, + "src": "1661:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1040, + "id": 1137, "indexExpression": { "argumentTypes": null, - "id": 1039, + "id": 1136, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "1608:16:5", + "referencedDeclaration": 1043, + "src": "1669:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5259,7 +6099,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1600:25:5", + "src": "1661:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5269,26 +6109,64 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1041, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1628:6:5", + "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_contract$_Module_$935", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "1600:34:5", + "src": "1661:43:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1043, + "id": 1142, "nodeType": "ExpressionStatement", - "src": "1600:34:5" + "src": "1661:43:5" }, { "eventCall": { @@ -5296,14 +6174,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1045, + "id": 1144, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1663:6:5", + "referencedDeclaration": 1090, + "src": "1733:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -5311,22 +6189,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], - "id": 1044, + "id": 1143, "name": "EnabledModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "1649:13:5", + "referencedDeclaration": 1034, + "src": "1719:13:5", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$1020_$returns$__$", "typeString": "function (contract Module)" } }, - "id": 1046, + "id": 1145, "isConstant": false, "isLValue": false, "isPure": false, @@ -5334,72 +6212,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1649:21:5", + "src": "1719:21:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1047, + "id": 1146, "nodeType": "EmitStatement", - "src": "1644:26:5" + "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": 1049, + "id": 1148, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1004, + "id": 1093, "modifierName": { "argumentTypes": null, - "id": 1003, + "id": 1092, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "1242:10:5", + "referencedDeclaration": 1880, + "src": "1267:10:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1242:10:5" + "src": "1267:10:5" } ], "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1002, + "id": 1091, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1001, + "id": 1090, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1049, - "src": "1204:13:5", + "scope": 1148, + "src": "1229:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1000, + "id": 1089, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "1204:6:5", + "referencedDeclaration": 1020, + "src": "1229:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, @@ -5407,26 +6284,25 @@ "visibility": "internal" } ], - "src": "1203:15:5" + "src": "1228:15:5" }, - "payable": false, "returnParameters": { - "id": 1005, + "id": 1094, "nodeType": "ParameterList", "parameters": [], - "src": "1257:0:5" + "src": "1282:0:5" }, - "scope": 1212, - "src": "1182:495:5", + "scope": 1330, + "src": "1207:540:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1102, + "id": 1213, "nodeType": "Block", - "src": "2033:416:5", + "src": "2103:470:5", "statements": [ { "expression": { @@ -5438,7 +6314,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1069, + "id": 1170, "isConstant": false, "isLValue": false, "isPure": false, @@ -5449,7 +6325,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1063, + "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, @@ -5459,14 +6335,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1060, + "id": 1159, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2141:6:5", + "referencedDeclaration": 1152, + "src": "2211:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -5474,24 +6350,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], - "id": 1059, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2133:7:5", + "src": "2203:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1061, + "id": 1160, "isConstant": false, "isLValue": false, "isPure": false, @@ -5499,7 +6375,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2133:15:5", + "src": "2203:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5509,23 +6385,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1062, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "2152:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2222:10:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "2133:20:5", + "src": "2203:29:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5539,7 +6453,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1068, + "id": 1169, "isConstant": false, "isLValue": false, "isPure": false, @@ -5549,14 +6463,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1065, + "id": 1166, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2165:6:5", + "referencedDeclaration": 1152, + "src": "2244:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -5564,24 +6478,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], - "id": 1064, + "id": 1165, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2157:7:5", + "src": "2236:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1066, + "id": 1167, "isConstant": false, "isLValue": false, "isPure": false, @@ -5589,7 +6503,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2157:15:5", + "src": "2236:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5599,24 +6513,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1067, + "id": 1168, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "2176:16:5", + "referencedDeclaration": 1043, + "src": "2255:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2157:35:5", + "src": "2236:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2133:59:5", + "src": "2203:68:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5625,14 +6539,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1070, + "id": 1171, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2194:33:5", + "src": "2273:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", @@ -5652,21 +6566,21 @@ "typeString": "literal_string \"Invalid module address provided\"" } ], - "id": 1058, + "id": 1157, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2125:7:5", + "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": 1071, + "id": 1172, "isConstant": false, "isLValue": false, "isPure": false, @@ -5674,15 +6588,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2125:103:5", + "src": "2195:112:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1072, + "id": 1173, "nodeType": "ExpressionStatement", - "src": "2125:103:5" + "src": "2195:112:5" }, { "expression": { @@ -5694,7 +6608,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1080, + "id": 1183, "isConstant": false, "isLValue": false, "isPure": false, @@ -5703,29 +6617,67 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1074, + "id": 1175, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2246:7:5", + "referencedDeclaration": 1047, + "src": "2325:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1076, + "id": 1179, "indexExpression": { "argumentTypes": null, - "id": 1075, - "name": "prevModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "2254:10:5", + "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_contract$_Module_$935", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -5733,7 +6685,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2246:19:5", + "src": "2325:28:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5746,14 +6698,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1078, + "id": 1181, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2277:6:5", + "referencedDeclaration": 1152, + "src": "2365:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -5761,24 +6713,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], - "id": 1077, + "id": 1180, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2269:7:5", + "src": "2357:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1079, + "id": 1182, "isConstant": false, "isLValue": false, "isPure": false, @@ -5786,13 +6738,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2269:15:5", + "src": "2357:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2246:38:5", + "src": "2325:47:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5801,14 +6753,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564", - "id": 1081, + "id": 1184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2286:42:5", + "src": "2374:42:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e", @@ -5828,21 +6780,21 @@ "typeString": "literal_string \"Invalid prevModule, module pair provided\"" } ], - "id": 1073, + "id": 1174, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2238:7:5", + "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": 1082, + "id": 1185, "isConstant": false, "isLValue": false, "isPure": false, @@ -5850,20 +6802,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2238:91:5", + "src": "2317:100:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1083, + "id": 1186, "nodeType": "ExpressionStatement", - "src": "2238:91:5" + "src": "2317:100:5" }, { "expression": { "argumentTypes": null, - "id": 1090, + "id": 1197, "isConstant": false, "isLValue": false, "isPure": false, @@ -5872,29 +6824,67 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1084, + "id": 1187, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2339:7:5", + "referencedDeclaration": 1047, + "src": "2427:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1086, + "id": 1191, "indexExpression": { "argumentTypes": null, - "id": 1085, - "name": "prevModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "2347:10:5", + "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_contract$_Module_$935", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -5902,7 +6892,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2339:19:5", + "src": "2427:28:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5914,29 +6904,67 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1087, + "id": 1192, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2361:7:5", + "referencedDeclaration": 1047, + "src": "2458:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1089, + "id": 1196, "indexExpression": { "argumentTypes": null, - "id": 1088, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2369:6:5", + "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_contract$_Module_$935", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -5944,26 +6972,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2361:15:5", + "src": "2458:24:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2339:37:5", + "src": "2427:55:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1091, + "id": 1198, "nodeType": "ExpressionStatement", - "src": "2339:37:5" + "src": "2427:55:5" }, { "expression": { "argumentTypes": null, - "id": 1096, + "id": 1207, "isConstant": false, "isLValue": false, "isPure": false, @@ -5972,29 +7000,67 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1092, + "id": 1199, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2386:7:5", + "referencedDeclaration": 1047, + "src": "2492:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1094, + "id": 1203, "indexExpression": { "argumentTypes": null, - "id": 1093, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2394:6:5", + "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_contract$_Module_$935", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -6002,7 +7068,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2386:15:5", + "src": "2492:24:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6012,31 +7078,69 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "hexValue": "30", - "id": 1095, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "2404:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2519:10:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "2386:19:5", + "src": "2492:37:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1097, + "id": 1208, "nodeType": "ExpressionStatement", - "src": "2386:19:5" + "src": "2492:37:5" }, { "eventCall": { @@ -6044,14 +7148,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1099, + "id": 1210, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2435:6:5", + "referencedDeclaration": 1152, + "src": "2559:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } } @@ -6059,22 +7163,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } ], - "id": 1098, + "id": 1209, "name": "DisabledModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "2420:14:5", + "referencedDeclaration": 1038, + "src": "2544:14:5", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$1020_$returns$__$", "typeString": "function (contract Module)" } }, - "id": 1100, + "id": 1211, "isConstant": false, "isLValue": false, "isPure": false, @@ -6082,72 +7186,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2420:22:5", + "src": "2544:22:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1101, + "id": 1212, "nodeType": "EmitStatement", - "src": "2415:27:5" + "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": 1103, + "id": 1214, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1056, + "id": 1155, "modifierName": { "argumentTypes": null, - "id": 1055, + "id": 1154, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "2018:10:5", + "referencedDeclaration": 1880, + "src": "2088:10:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2018:10:5" + "src": "2088:10:5" } ], "name": "disableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1054, + "id": 1153, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1051, + "id": 1150, "name": "prevModule", "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "1961:17:5", + "scope": 1214, + "src": "2031:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1050, + "id": 1149, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "1961:6:5", + "referencedDeclaration": 1020, + "src": "2031:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, @@ -6156,26 +7259,26 @@ }, { "constant": false, - "id": 1053, + "id": 1152, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "1980:13:5", + "scope": 1214, + "src": "2050:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1052, + "id": 1151, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "1980:6:5", + "referencedDeclaration": 1020, + "src": "2050:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, @@ -6183,26 +7286,25 @@ "visibility": "internal" } ], - "src": "1960:34:5" + "src": "2030:34:5" }, - "payable": false, "returnParameters": { - "id": 1057, + "id": 1156, "nodeType": "ParameterList", "parameters": [], - "src": "2033:0:5" + "src": "2103:0:5" }, - "scope": 1212, - "src": "1938:511:5", + "scope": 1330, + "src": "2008:565:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1137, + "id": 1255, "nodeType": "Block", - "src": "2935:279:5", + "src": "3066:322:5", "statements": [ { "expression": { @@ -6211,46 +7313,41 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "id": 1122, + "id": 1240, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1117, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3002:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 1120, - "indexExpression": { + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1118, + "id": 1228, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "3010:3:5", + "referencedDeclaration": 4366, + "src": "3133:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1119, + "id": 1229, "isConstant": false, "isLValue": false, "isPure": false, @@ -6258,44 +7355,167 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3010:10:5", + "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" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3002:19:5", + "src": "3133:30:5", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": "&&", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1121, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1239, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "3025:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "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" + } }, - "value": "0" + "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": "3002:24:5", + "src": "3133:67:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6304,14 +7524,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65", - "id": 1123, + "id": 1241, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3028:50:5", + "src": "3202:50:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", @@ -6331,21 +7551,21 @@ "typeString": "literal_string \"Method can only be called from an enabled module\"" } ], - "id": 1116, + "id": 1227, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2994:7:5", + "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": 1124, + "id": 1242, "isConstant": false, "isLValue": false, "isPure": false, @@ -6353,32 +7573,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2994:85:5", + "src": "3125:128:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1125, + "id": 1243, "nodeType": "ExpressionStatement", - "src": "2994:85:5" + "src": "3125:128:5" }, { "expression": { "argumentTypes": null, - "id": 1135, + "id": 1253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1126, + "id": 1244, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1114, - "src": "3151:7:5", + "referencedDeclaration": 1225, + "src": "3325:7:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6391,12 +7611,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1128, + "id": 1246, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1105, - "src": "3169:2:5", + "referencedDeclaration": 1216, + "src": "3343:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6404,12 +7624,12 @@ }, { "argumentTypes": null, - "id": 1129, + "id": 1247, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "3173:5:5", + "referencedDeclaration": 1218, + "src": "3347:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6417,12 +7637,12 @@ }, { "argumentTypes": null, - "id": 1130, + "id": 1248, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "3180:4:5", + "referencedDeclaration": 1220, + "src": "3354:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6430,14 +7650,14 @@ }, { "argumentTypes": null, - "id": 1131, + "id": 1249, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "3186:9:5", + "referencedDeclaration": 1222, + "src": "3360:9:5", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -6446,18 +7666,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1132, + "id": 1250, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "3197:7:5", + "referencedDeclaration": 4359, + "src": "3371:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 1133, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, @@ -6465,7 +7685,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3197:9:5", + "src": "3371:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6487,7 +7707,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -6495,18 +7715,18 @@ "typeString": "uint256" } ], - "id": 1127, + "id": 1245, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "3161:7:5", + "referencedDeclaration": 937, + "src": "3335:7:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", + "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": 1134, + "id": 1252, "isConstant": false, "isLValue": false, "isPure": false, @@ -6514,43 +7734,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3161:46:5", + "src": "3335:46:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3151:56:5", + "src": "3325:56:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1136, + "id": 1254, "nodeType": "ExpressionStatement", - "src": "3151:56:5" + "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": 1138, + "id": 1256, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "execTransactionFromModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1112, + "id": 1223, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1105, + "id": 1216, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2820:10:5", + "scope": 1256, + "src": "2944:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6558,10 +7777,11 @@ "typeString": "address" }, "typeName": { - "id": 1104, + "id": 1215, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2820:7:5", + "src": "2944:7:5", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6572,11 +7792,11 @@ }, { "constant": false, - "id": 1107, + "id": 1218, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2832:13:5", + "scope": 1256, + "src": "2956:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6584,10 +7804,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1106, + "id": 1217, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2832:7:5", + "src": "2956:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6598,22 +7818,22 @@ }, { "constant": false, - "id": 1109, + "id": 1220, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2847:10:5", + "scope": 1256, + "src": "2971:17:5", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 1108, + "id": 1219, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2847:5:5", + "src": "2971:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6624,26 +7844,26 @@ }, { "constant": false, - "id": 1111, + "id": 1222, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2859:24:5", + "scope": 1256, + "src": "2990:24:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 1110, + "id": 1221, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "2859:14:5", + "referencedDeclaration": 1802, + "src": "2990:14:5", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -6651,20 +7871,19 @@ "visibility": "internal" } ], - "src": "2819:65:5" + "src": "2943:72:5" }, - "payable": false, "returnParameters": { - "id": 1115, + "id": 1226, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1114, + "id": 1225, "name": "success", "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2917:12:5", + "scope": 1256, + "src": "3048:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6672,10 +7891,10 @@ "typeString": "bool" }, "typeName": { - "id": 1113, + "id": 1224, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2917:4:5", + "src": "3048:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6685,32 +7904,32 @@ "visibility": "internal" } ], - "src": "2916:14:5" + "src": "3047:14:5" }, - "scope": 1212, - "src": "2785:429:5", + "scope": 1330, + "src": "2909:479:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1210, + "id": 1328, "nodeType": "Block", - "src": "3375:656:5", + "src": "3556:656:5", "statements": [ { "assignments": [ - 1145 + 1263 ], "declarations": [ { "constant": false, - "id": 1145, + "id": 1263, "name": "moduleCount", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3419:19:5", + "scope": 1328, + "src": "3600:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6718,10 +7937,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1144, + "id": 1262, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3419:7:5", + "src": "3600:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6731,18 +7950,18 @@ "visibility": "internal" } ], - "id": 1147, + "id": 1265, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1146, + "id": 1264, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3441:1:5", + "src": "3622:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6751,20 +7970,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3419:23:5" + "src": "3600:23:5" }, { "assignments": [ - 1149 + 1267 ], "declarations": [ { "constant": false, - "id": 1149, + "id": 1267, "name": "currentModule", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3452:21:5", + "scope": 1328, + "src": "3633:21:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6772,10 +7991,11 @@ "typeString": "address" }, "typeName": { - "id": 1148, + "id": 1266, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3452:7:5", + "src": "3633:7:5", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6785,31 +8005,31 @@ "visibility": "internal" } ], - "id": 1153, + "id": 1271, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1150, + "id": 1268, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3476:7:5", + "referencedDeclaration": 1047, + "src": "3657:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1152, + "id": 1270, "indexExpression": { "argumentTypes": null, - "id": 1151, + "id": 1269, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3484:16:5", + "referencedDeclaration": 1043, + "src": "3665:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6820,37 +8040,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3476:25:5", + "src": "3657:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "3452:49:5" + "src": "3633:49:5" }, { "body": { - "id": 1166, + "id": 1284, "nodeType": "Block", - "src": "3552:91:5", + "src": "3733:91:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 1161, + "id": 1279, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1157, + "id": 1275, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3566:13:5", + "referencedDeclaration": 1267, + "src": "3747:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6862,26 +8082,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1158, + "id": 1276, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3582:7:5", + "referencedDeclaration": 1047, + "src": "3763:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1160, + "id": 1278, "indexExpression": { "argumentTypes": null, - "id": 1159, + "id": 1277, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3590:13:5", + "referencedDeclaration": 1267, + "src": "3771:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6892,26 +8112,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3582:22:5", + "src": "3763:22:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3566:38:5", + "src": "3747:38:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1162, + "id": 1280, "nodeType": "ExpressionStatement", - "src": "3566:38:5" + "src": "3747:38:5" }, { "expression": { "argumentTypes": null, - "id": 1164, + "id": 1282, "isConstant": false, "isLValue": false, "isPure": false, @@ -6919,15 +8139,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3618:14:5", + "src": "3799:14:5", "subExpression": { "argumentTypes": null, - "id": 1163, + "id": 1281, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3618:11:5", + "referencedDeclaration": 1263, + "src": "3799:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6938,9 +8158,9 @@ "typeString": "uint256" } }, - "id": 1165, + "id": 1283, "nodeType": "ExpressionStatement", - "src": "3618:14:5" + "src": "3799:14:5" } ] }, @@ -6950,19 +8170,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1156, + "id": 1274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1154, + "id": 1272, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3517:13:5", + "referencedDeclaration": 1267, + "src": "3698:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6972,39 +8192,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1155, + "id": 1273, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3534:16:5", + "referencedDeclaration": 1043, + "src": "3715:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3517:33:5", + "src": "3698:33:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1167, + "id": 1285, "nodeType": "WhileStatement", - "src": "3511:132:5" + "src": "3692:132:5" }, { "assignments": [ - 1171 + 1289 ], "declarations": [ { "constant": false, - "id": 1171, + "id": 1289, "name": "array", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3652:22:5", + "scope": 1328, + "src": "3833:22:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7013,19 +8233,19 @@ }, "typeName": { "baseType": { - "id": 1169, + "id": 1287, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3652:7:5", + "src": "3833:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1170, + "id": 1288, "length": null, "nodeType": "ArrayTypeName", - "src": "3652:9:5", + "src": "3833:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -7035,18 +8255,18 @@ "visibility": "internal" } ], - "id": 1177, + "id": 1295, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1175, + "id": 1293, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3691:11:5", + "referencedDeclaration": 1263, + "src": "3872:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7060,39 +8280,40 @@ "typeString": "uint256" } ], - "id": 1174, + "id": 1292, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3677:13:5", + "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": 1172, + "id": 1290, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3681:7:5", + "src": "3862:7:5", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1173, + "id": 1291, "length": null, "nodeType": "ArrayTypeName", - "src": "3681:9:5", + "src": "3862:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 1176, + "id": 1294, "isConstant": false, "isLValue": false, "isPure": false, @@ -7100,31 +8321,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3677:26:5", + "src": "3858:26:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "3652:51:5" + "src": "3833:51:5" }, { "expression": { "argumentTypes": null, - "id": 1180, + "id": 1298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1178, + "id": 1296, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3747:11:5", + "referencedDeclaration": 1263, + "src": "3928:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7135,14 +8356,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1179, + "id": 1297, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3761:1:5", + "src": "3942:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7150,32 +8371,32 @@ }, "value": "0" }, - "src": "3747:15:5", + "src": "3928:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1181, + "id": 1299, "nodeType": "ExpressionStatement", - "src": "3747:15:5" + "src": "3928:15:5" }, { "expression": { "argumentTypes": null, - "id": 1186, + "id": 1304, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1182, + "id": 1300, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3772:13:5", + "referencedDeclaration": 1267, + "src": "3953:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7187,26 +8408,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1183, + "id": 1301, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3788:7:5", + "referencedDeclaration": 1047, + "src": "3969:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1185, + "id": 1303, "indexExpression": { "argumentTypes": null, - "id": 1184, + "id": 1302, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3796:16:5", + "referencedDeclaration": 1043, + "src": "3977:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7217,32 +8438,32 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3788:25:5", + "src": "3969:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3772:41:5", + "src": "3953:41:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1187, + "id": 1305, "nodeType": "ExpressionStatement", - "src": "3772:41:5" + "src": "3953:41:5" }, { "body": { - "id": 1206, + "id": 1324, "nodeType": "Block", - "src": "3864:139:5", + "src": "4045:139:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 1195, + "id": 1313, "isConstant": false, "isLValue": false, "isPure": false, @@ -7251,26 +8472,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1191, + "id": 1309, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "3878:5:5", + "referencedDeclaration": 1289, + "src": "4059:5:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1193, + "id": 1311, "indexExpression": { "argumentTypes": null, - "id": 1192, + "id": 1310, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3884:11:5", + "referencedDeclaration": 1263, + "src": "4065:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7281,7 +8502,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3878:18:5", + "src": "4059:18:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7291,43 +8512,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1194, + "id": 1312, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3899:13:5", + "referencedDeclaration": 1267, + "src": "4080:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3878:34:5", + "src": "4059:34:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1196, + "id": 1314, "nodeType": "ExpressionStatement", - "src": "3878:34:5" + "src": "4059:34:5" }, { "expression": { "argumentTypes": null, - "id": 1201, + "id": 1319, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1197, + "id": 1315, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3926:13:5", + "referencedDeclaration": 1267, + "src": "4107:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7339,26 +8560,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1198, + "id": 1316, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3942:7:5", + "referencedDeclaration": 1047, + "src": "4123:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1200, + "id": 1318, "indexExpression": { "argumentTypes": null, - "id": 1199, + "id": 1317, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3950:13:5", + "referencedDeclaration": 1267, + "src": "4131:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7369,26 +8590,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3942:22:5", + "src": "4123:22:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3926:38:5", + "src": "4107:38:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1202, + "id": 1320, "nodeType": "ExpressionStatement", - "src": "3926:38:5" + "src": "4107:38:5" }, { "expression": { "argumentTypes": null, - "id": 1204, + "id": 1322, "isConstant": false, "isLValue": false, "isPure": false, @@ -7396,15 +8617,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3978:14:5", + "src": "4159:14:5", "subExpression": { "argumentTypes": null, - "id": 1203, + "id": 1321, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3978:11:5", + "referencedDeclaration": 1263, + "src": "4159:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7415,9 +8636,9 @@ "typeString": "uint256" } }, - "id": 1205, + "id": 1323, "nodeType": "ExpressionStatement", - "src": "3978:14:5" + "src": "4159:14:5" } ] }, @@ -7427,19 +8648,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1190, + "id": 1308, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1188, + "id": 1306, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3829:13:5", + "referencedDeclaration": 1267, + "src": "4010:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7449,95 +8670,94 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1189, + "id": 1307, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3846:16:5", + "referencedDeclaration": 1043, + "src": "4027:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3829:33:5", + "src": "4010:33:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1207, + "id": 1325, "nodeType": "WhileStatement", - "src": "3823:180:5" + "src": "4004:180:5" }, { "expression": { "argumentTypes": null, - "id": 1208, + "id": 1326, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "4019:5:5", + "referencedDeclaration": 1289, + "src": "4200:5:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 1143, - "id": 1209, + "functionReturnParameters": 1261, + "id": 1327, "nodeType": "Return", - "src": "4012:12:5" + "src": "4193:12:5" } ] }, "documentation": "@dev Returns array of modules.\n @return Array of modules.", - "id": 1211, + "id": 1329, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "getModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 1139, + "id": 1257, "nodeType": "ParameterList", "parameters": [], - "src": "3312:2:5" + "src": "3486:2:5" }, - "payable": false, "returnParameters": { - "id": 1143, + "id": 1261, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1142, + "id": 1260, "name": "", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3360:9:5", + "scope": 1329, + "src": "3534:16:5", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 1140, + "id": 1258, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3360:7:5", + "src": "3534:7:5", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1141, + "id": 1259, "length": null, "nodeType": "ArrayTypeName", - "src": "3360:9:5", + "src": "3534:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -7547,26 +8767,26 @@ "visibility": "internal" } ], - "src": "3359:11:5" + "src": "3533:18:5" }, - "scope": 1212, - "src": "3293:738:5", + "scope": 1330, + "src": "3467:745:5", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1213, - "src": "348:3685:5" + "scope": 1331, + "src": "348:3866:5" } ], - "src": "0:4034:5" + "src": "0:4215:5" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.913Z" + "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 index 5f94f7fe..c48756e5 100644 --- a/safe-contracts/build/contracts/MultiSend.json +++ b/safe-contracts/build/contracts/MultiSend.json @@ -16,31 +16,32 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610169806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638d80ff0a14610046575b600080fd5b34801561005257600080fd5b506100ad600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506100af565b005b805160205b81811015610138578083015160208201840151604083018501516080840186015160a085018701600085600081146100f357600181146101035761010e565b6000808585888a5af1915061010e565b6000808585895af491505b50600081141561011d57600080fd5b602080601f8501040260a001870196505050505050506100b4565b5050505600a165627a7a72305820c1abf4988401674d6d6a5ceca56de123817c61305360ceffe26ebab59a828b7d0029", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638d80ff0a14610046575b600080fd5b34801561005257600080fd5b506100ad600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506100af565b005b805160205b81811015610138578083015160208201840151604083018501516080840186015160a085018701600085600081146100f357600181146101035761010e565b6000808585888a5af1915061010e565b6000808585895af491505b50600081141561011d57600080fd5b602080601f8501040260a001870196505050505050506100b4565b5050505600a165627a7a72305820c1abf4988401674d6d6a5ceca56de123817c61305360ceffe26ebab59a828b7d0029", - "sourceMap": "253:1424:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;253:1424:15;;;;;;;", - "deployedSourceMap": "253:1424:15:-;;;;;;;;;;;;;;;;;;;;;;;;695:980;;8:9:-1;5:2;;;30:1;27;20:12;5:2;695:980:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;870:12;864:19;905:4;922:737;936:6;933:1;930:13;922:737;;;1007:1;993:12;989:20;983:27;1068:4;1065:1;1061:12;1047;1043:31;1037:38;1136:4;1133:1;1129:12;1115;1111:31;1105:38;1209:4;1206:1;1202:12;1188;1184:31;1178:38;1270:4;1267:1;1263:12;1249;1245:31;1308:1;1333:9;1365:1;1360:66;;;;1448:1;1443:67;;;;1326:184;;1360:66;1422:1;1419;1407:10;1401:4;1394:5;1390:2;1385:3;1380:44;1369:55;;1360:66;;1443:67;1506:1;1503;1491:10;1485:4;1481:2;1476:3;1463:45;1452:56;;1326:184;;1542:1;1533:7;1530:14;1527:2;;;1557:1;1554;1547:12;1527:2;1638:4;1631;1624;1612:10;1608:21;1604:32;1600:43;1594:4;1590:54;1587:1;1583:62;1578:67;;948:711;;;;;;922:737;;;836:833;;;:::o", - "source": "pragma solidity 0.4.24;\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 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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", "exportedSymbols": { "MultiSend": [ - 1858 + 2135 ] }, - "id": 1859, + "id": 2136, "nodeType": "SourceUnit", "nodes": [ { - "id": 1850, + "id": 2127, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:15" + "src": "0:23:16" }, { "baseContracts": [], @@ -48,113 +49,112 @@ "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": 1858, + "id": 2135, "linearizedBaseContracts": [ - 1858 + 2135 ], "name": "MultiSend", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1856, + "id": 2133, "nodeType": "Block", - "src": "753:922:15", + "src": "760:922:16", "statements": [ { "externalReferences": [ { "transactions": { - "declaration": 1852, + "declaration": 2129, "isOffset": false, "isSlot": false, - "src": "870:12:15", + "src": "877:12:16", "valueSize": 1 } }, { "transactions": { - "declaration": 1852, + "declaration": 2129, "isOffset": false, "isSlot": false, - "src": "993:12:15", + "src": "1000:12:16", "valueSize": 1 } }, { "transactions": { - "declaration": 1852, + "declaration": 2129, "isOffset": false, "isSlot": false, - "src": "1047:12:15", + "src": "1054:12:16", "valueSize": 1 } }, { "transactions": { - "declaration": 1852, + "declaration": 2129, "isOffset": false, "isSlot": false, - "src": "1188:12:15", + "src": "1195:12:16", "valueSize": 1 } }, { "transactions": { - "declaration": 1852, + "declaration": 2129, "isOffset": false, "isSlot": false, - "src": "1115:12:15", + "src": "1122:12:16", "valueSize": 1 } }, { "transactions": { - "declaration": 1852, + "declaration": 2129, "isOffset": false, "isSlot": false, - "src": "1249:12:15", + "src": "1256:12:16", "valueSize": 1 } } ], - "id": 1855, + "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": "827:848:15" + "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": 1857, + "id": 2134, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "multiSend", "nodeType": "FunctionDefinition", "parameters": { - "id": 1853, + "id": 2130, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1852, + "id": 2129, "name": "transactions", "nodeType": "VariableDeclaration", - "scope": 1857, - "src": "714:18:15", + "scope": 2134, + "src": "714:25:16", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 1851, + "id": 2128, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "714:5:15", + "src": "714:5:16", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -164,47 +164,47 @@ "visibility": "internal" } ], - "src": "713:20:15" + "src": "713:27:16" }, - "payable": false, "returnParameters": { - "id": 1854, + "id": 2131, "nodeType": "ParameterList", "parameters": [], - "src": "753:0:15" + "src": "760:0:16" }, - "scope": 1858, - "src": "695:980:15", + "scope": 2135, + "src": "695:987:16", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1859, - "src": "253:1424:15" + "scope": 2136, + "src": "253:1431:16" } ], - "src": "0:1678:15" + "src": "0:1685:16" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", "exportedSymbols": { "MultiSend": [ - 1858 + 2135 ] }, - "id": 1859, + "id": 2136, "nodeType": "SourceUnit", "nodes": [ { - "id": 1850, + "id": 2127, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:15" + "src": "0:23:16" }, { "baseContracts": [], @@ -212,113 +212,112 @@ "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": 1858, + "id": 2135, "linearizedBaseContracts": [ - 1858 + 2135 ], "name": "MultiSend", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1856, + "id": 2133, "nodeType": "Block", - "src": "753:922:15", + "src": "760:922:16", "statements": [ { "externalReferences": [ { "transactions": { - "declaration": 1852, + "declaration": 2129, "isOffset": false, "isSlot": false, - "src": "870:12:15", + "src": "877:12:16", "valueSize": 1 } }, { "transactions": { - "declaration": 1852, + "declaration": 2129, "isOffset": false, "isSlot": false, - "src": "993:12:15", + "src": "1000:12:16", "valueSize": 1 } }, { "transactions": { - "declaration": 1852, + "declaration": 2129, "isOffset": false, "isSlot": false, - "src": "1047:12:15", + "src": "1054:12:16", "valueSize": 1 } }, { "transactions": { - "declaration": 1852, + "declaration": 2129, "isOffset": false, "isSlot": false, - "src": "1188:12:15", + "src": "1195:12:16", "valueSize": 1 } }, { "transactions": { - "declaration": 1852, + "declaration": 2129, "isOffset": false, "isSlot": false, - "src": "1115:12:15", + "src": "1122:12:16", "valueSize": 1 } }, { "transactions": { - "declaration": 1852, + "declaration": 2129, "isOffset": false, "isSlot": false, - "src": "1249:12:15", + "src": "1256:12:16", "valueSize": 1 } } ], - "id": 1855, + "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": "827:848:15" + "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": 1857, + "id": 2134, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "multiSend", "nodeType": "FunctionDefinition", "parameters": { - "id": 1853, + "id": 2130, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1852, + "id": 2129, "name": "transactions", "nodeType": "VariableDeclaration", - "scope": 1857, - "src": "714:18:15", + "scope": 2134, + "src": "714:25:16", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 1851, + "id": 2128, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "714:5:15", + "src": "714:5:16", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -328,46 +327,57 @@ "visibility": "internal" } ], - "src": "713:20:15" + "src": "713:27:16" }, - "payable": false, "returnParameters": { - "id": 1854, + "id": 2131, "nodeType": "ParameterList", "parameters": [], - "src": "753:0:15" + "src": "760:0:16" }, - "scope": 1858, - "src": "695:980:15", + "scope": 2135, + "src": "695:987:16", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1859, - "src": "253:1424:15" + "scope": 2136, + "src": "253:1431:16" } ], - "src": "0:1678:15" + "src": "0:1685:16" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": { - "4": { - "events": {}, + "1": { "links": {}, - "address": "0x6f6f431429fb15bb2ca4bb55bf353c15f044df9e", - "transactionHash": "0xeaf5db265940b81d6fe881ebf0b05aa9dde905851a966a9cda08dcabd7dc10bd" + "events": {}, + "address": "0xD4B7B161E4779629C2717385114Bf78D612aEa72", + "updated_at": 1555073253729 }, - "1538739975997": { - "events": {}, + "4": { "links": {}, - "address": "0x26b4afb60d6c903165150c6f0aa14f8016be4aec", - "transactionHash": "0x4a85e63a3968cc7f7aaa5303f6ed331cf782929fc758645b44145286ad4076a6" + "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.0", - "updatedAt": "2018-10-05T14:43:41.420Z" + "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 index e9706005..f47a9476 100644 --- a/safe-contracts/build/contracts/OwnerManager.json +++ b/safe-contracts/build/contracts/OwnerManager.json @@ -175,39 +175,40 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061189b806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100935780632f54bf6e146100e0578063694e80c31461013b5780638cff635514610168578063a0e67e2b146101bf578063e318b52b1461022b578063e75235b8146102ae578063f8dc5dd9146102d9575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610346565b005b3480156100ec57600080fd5b50610121600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107ab565b604051808215151515815260200191505060405180910390f35b34801561014757600080fd5b506101666004803603810190808035906020019092919050505061082c565b005b34801561017457600080fd5b5061017d610a77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cb57600080fd5b506101d4610a7c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102175780820151818401526020810190506101fc565b505050509050019250505060405180910390f35b34801561023757600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c15565b005b3480156102ba57600080fd5b506102c3611322565b6040518082815260200191505060405180910390f35b3480156102e557600080fd5b50610344600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061132c565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561040f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156104635750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156104d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156105c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806002541415156107a7576107a68161082c565b5b5050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001548111151515610995576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515610a34576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806002819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936002546040518082815260200191505060405180910390a150565b600181565b606080600080600154604051908082528060200260200182016040528015610ab35781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610c0c57808383815181101515610b6257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610b1d565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610d325750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610da6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610ee65750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610f5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611081576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600254905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600180540310151515611497576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156114eb5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561155f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611686576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060025414151561186a576118698161082c565b5b5050505600a165627a7a7230582056666623352a47e52d4cc29303aac8f94641a1fd47d42f3cb2f598ede93ce0b00029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100935780632f54bf6e146100e0578063694e80c31461013b5780638cff635514610168578063a0e67e2b146101bf578063e318b52b1461022b578063e75235b8146102ae578063f8dc5dd9146102d9575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610346565b005b3480156100ec57600080fd5b50610121600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107ab565b604051808215151515815260200191505060405180910390f35b34801561014757600080fd5b506101666004803603810190808035906020019092919050505061082c565b005b34801561017457600080fd5b5061017d610a77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cb57600080fd5b506101d4610a7c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102175780820151818401526020810190506101fc565b505050509050019250505060405180910390f35b34801561023757600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c15565b005b3480156102ba57600080fd5b506102c3611322565b6040518082815260200191505060405180910390f35b3480156102e557600080fd5b50610344600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061132c565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561040f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156104635750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156104d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156105c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806002541415156107a7576107a68161082c565b5b5050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001548111151515610995576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515610a34576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806002819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936002546040518082815260200191505060405180910390a150565b600181565b606080600080600154604051908082528060200260200182016040528015610ab35781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610c0c57808383815181101515610b6257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610b1d565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610d325750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610da6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610ee65750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610f5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611081576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600254905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600180540310151515611497576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156114eb5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561155f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611686576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060025414151561186a576118698161082c565b5b5050505600a165627a7a7230582056666623352a47e52d4cc29303aac8f94641a1fd47d42f3cb2f598ede93ce0b00029", - "sourceMap": "248:6348:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;248:6348:6;;;;;;;", - "deployedSourceMap": "248:6348:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2225:627:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5925:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5925:129:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:441;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5357:441:6;;;;;;;;;;;;;;;;;;;;;;;;;;419:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;6136:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6136:458:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6136:458:6;;;;;;;;;;;;;;;;;4345:823;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4345:823:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5804:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5804:115:6;;;;;;;;;;;;;;;;;;;;;;;3194:817;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3194:817:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2397:1:6;2388:5;:10;;;;:38;;;;;469:3;2402:24;;:5;:24;;;;2388:38;2380:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:1;2519:6;:13;2526:5;2519:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2511:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2595:6;:23;469:3;2595:23;;;;;;;;;;;;;;;;;;;;;;;;;2579:6;:13;2586:5;2579:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2654:5;2628:6;:23;469:3;2628:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2669:10;;:12;;;;;;;;;;;;;2696:17;2707:5;2696:17;;;;;;;;;;;;;;;;;;;;;;2794:10;2781:9;;:23;;2777:68;;;2818:27;2834:10;2818:15;:27::i;:::-;2777:68;2225:627;;:::o;5925:129::-;6002:4;6046:1;6029:6;:13;6036:5;6029:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;6022:25;;5925:129;;;:::o;5357:441::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:10:6;;5527;:24;;5519:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5675:1;5661:10;:15;;5653:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5739:10;5727:9;:22;;;;5764:27;5781:9;;5764:27;;;;;;;;;;;;;;;;;;5357:441;:::o;419:54::-;469:3;419:54;:::o;6136:458::-;6202:9;6227:22;6321:13;6348:20;6266:10;;6252:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6252:25:6;;;;6227:50;;6337:1;6321:17;;6371:6;:23;469:3;6371:23;;;;;;;;;;;;;;;;;;;;;;;;;6348:46;;6404:162;469:3;6410:31;;:12;:31;;;;6404:162;;;6472:12;6457:5;6463;6457:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6513:6;:20;6520:12;6513:20;;;;;;;;;;;;;;;;;;;;;;;;;6498:35;;6547:8;;;;;;;6404:162;;;6582:5;6575:12;;6136:458;;;;:::o;4345:823::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4528:1:6;4516:8;:13;;;;:44;;;;;469:3;4533:27;;:8;:27;;;;4516:44;4508:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4673:1;4653:6;:16;4660:8;4653:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4645:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4819:1;4807:8;:13;;;;:44;;;;;469:3;4824:27;;:8;:27;;;;4807:44;4799:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4925:8;4904:29;;:6;:17;4911:9;4904:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4896:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5005:6;:16;5012:8;5005:16;;;;;;;;;;;;;;;;;;;;;;;;;4986:6;:16;4993:8;4986:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5051:8;5031:6;:17;5038:9;5031:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5088:1;5069:6;:16;5076:8;5069:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;5104:22;5117:8;5104:22;;;;;;;;;;;;;;;;;;;;;;5141:20;5152:8;5141:20;;;;;;;;;;;;;;;;;;;;;;4345:823;;;:::o;5804:115::-;5873:7;5903:9;;5896:16;;5804:115;:::o;3194:817::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:10:6;3415:1;3402:10;;:14;:28;;3394:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3595:1;3586:5;:10;;;;:38;;;;;469:3;3600:24;;:5;:24;;;;3586:38;3578:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3698:5;3677:26;;:6;:17;3684:9;3677:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3669:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3776:6;:13;3783:5;3776:13;;;;;;;;;;;;;;;;;;;;;;;;;3756:6;:17;3763:9;3756:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3815:1;3799:6;:13;3806:5;3799:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3826:10;;:12;;;;;;;;;;;;;;3853:19;3866:5;3853:19;;;;;;;;;;;;;;;;;;;;;;3953:10;3940:9;;:23;;3936:68;;;3977:27;3993:10;3977:15;:27::i;:::-;3936:68;3194:817;;;:::o", - "source": "pragma solidity 0.4.24;\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[] _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 != 0 && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[owner] == 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 != 0 && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[owner] == 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 != 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] = 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 != 0 && newOwner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[newOwner] == 0, \"Address is already an owner\");\n // Validate oldOwner address and check that it corresponds to owner index.\n require(oldOwner != 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] = 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 owners[owner] != 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[])\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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", "exportedSymbols": { "OwnerManager": [ - 1652 + 1796 ] }, - "id": 1653, + "id": 1797, "nodeType": "SourceUnit", "nodes": [ { - "id": 1214, + "id": 1332, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:6" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", "file": "../common/SelfAuthorized.sol", - "id": 1215, + "id": 1333, "nodeType": "ImportDirective", - "scope": 1653, - "sourceUnit": 1736, + "scope": 1797, + "sourceUnit": 1882, "src": "24:38:6", "symbolAliases": [], "unitAlias": "" @@ -218,31 +219,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1216, + "id": 1334, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1735, + "referencedDeclaration": 1881, "src": "273:14:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", + "typeIdentifier": "t_contract$_SelfAuthorized_$1881", "typeString": "contract SelfAuthorized" } }, - "id": 1217, + "id": 1335, "nodeType": "InheritanceSpecifier", "src": "273:14:6" } ], "contractDependencies": [ - 1735 + 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": 1652, + "id": 1796, "linearizedBaseContracts": [ - 1652, - 1735 + 1796, + 1881 ], "name": "OwnerManager", "nodeType": "ContractDefinition", @@ -250,20 +251,20 @@ { "anonymous": false, "documentation": null, - "id": 1221, + "id": 1339, "name": "AddedOwner", "nodeType": "EventDefinition", "parameters": { - "id": 1220, + "id": 1338, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1219, + "id": 1337, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1221, + "scope": 1339, "src": "312:13:6", "stateVariable": false, "storageLocation": "default", @@ -272,10 +273,11 @@ "typeString": "address" }, "typeName": { - "id": 1218, + "id": 1336, "name": "address", "nodeType": "ElementaryTypeName", "src": "312:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -292,20 +294,20 @@ { "anonymous": false, "documentation": null, - "id": 1225, + "id": 1343, "name": "RemovedOwner", "nodeType": "EventDefinition", "parameters": { - "id": 1224, + "id": 1342, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1223, + "id": 1341, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1225, + "scope": 1343, "src": "351:13:6", "stateVariable": false, "storageLocation": "default", @@ -314,10 +316,11 @@ "typeString": "address" }, "typeName": { - "id": 1222, + "id": 1340, "name": "address", "nodeType": "ElementaryTypeName", "src": "351:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -334,20 +337,20 @@ { "anonymous": false, "documentation": null, - "id": 1229, + "id": 1347, "name": "ChangedThreshold", "nodeType": "EventDefinition", "parameters": { - "id": 1228, + "id": 1346, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1227, + "id": 1345, "indexed": false, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 1229, + "scope": 1347, "src": "394:17:6", "stateVariable": false, "storageLocation": "default", @@ -356,7 +359,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1226, + "id": 1344, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "394:7:6", @@ -375,10 +378,10 @@ }, { "constant": true, - "id": 1234, + "id": 1352, "name": "SENTINEL_OWNERS", "nodeType": "VariableDeclaration", - "scope": 1652, + "scope": 1796, "src": "419:54:6", "stateVariable": true, "storageLocation": "default", @@ -387,10 +390,11 @@ "typeString": "address" }, "typeName": { - "id": 1230, + "id": 1348, "name": "address", "nodeType": "ElementaryTypeName", "src": "419:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -402,7 +406,7 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 1232, + "id": 1350, "isConstant": false, "isLValue": false, "isPure": true, @@ -425,7 +429,7 @@ "typeString": "int_const 1" } ], - "id": 1231, + "id": 1349, "isConstant": false, "isLValue": false, "isPure": true, @@ -438,7 +442,7 @@ }, "typeName": "address" }, - "id": 1233, + "id": 1351, "isConstant": false, "isLValue": false, "isPure": true, @@ -448,18 +452,18 @@ "nodeType": "FunctionCall", "src": "461:12:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "visibility": "public" }, { "constant": false, - "id": 1238, + "id": 1356, "name": "owners", "nodeType": "VariableDeclaration", - "scope": 1652, + "scope": 1796, "src": "480:43:6", "stateVariable": true, "storageLocation": "default", @@ -468,9 +472,9 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 1237, + "id": 1355, "keyType": { - "id": 1235, + "id": 1353, "name": "address", "nodeType": "ElementaryTypeName", "src": "488:7:6", @@ -486,10 +490,11 @@ "typeString": "mapping(address => address)" }, "valueType": { - "id": 1236, + "id": 1354, "name": "address", "nodeType": "ElementaryTypeName", "src": "499:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -501,10 +506,10 @@ }, { "constant": false, - "id": 1240, + "id": 1358, "name": "ownerCount", "nodeType": "VariableDeclaration", - "scope": 1652, + "scope": 1796, "src": "529:18:6", "stateVariable": true, "storageLocation": "default", @@ -513,7 +518,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1239, + "id": 1357, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "529:7:6", @@ -527,10 +532,10 @@ }, { "constant": false, - "id": 1242, + "id": 1360, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 1652, + "scope": 1796, "src": "553:26:6", "stateVariable": true, "storageLocation": "default", @@ -539,7 +544,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1241, + "id": 1359, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "553:7:6", @@ -553,9 +558,9 @@ }, { "body": { - "id": 1340, + "id": 1462, "nodeType": "Block", - "src": "856:1129:6", + "src": "863:1147:6", "statements": [ { "expression": { @@ -567,19 +572,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1253, + "id": 1371, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1251, + "id": 1369, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "998:9:6", + "referencedDeclaration": 1360, + "src": "1005:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -590,14 +595,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1252, + "id": 1370, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1011:1:6", + "src": "1018:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -605,7 +610,7 @@ }, "value": "0" }, - "src": "998:14:6", + "src": "1005:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -614,14 +619,14 @@ { "argumentTypes": null, "hexValue": "4f776e657273206861766520616c7265616479206265656e207365747570", - "id": 1254, + "id": 1372, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1014:32:6", + "src": "1021:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9a45ae898fbe2bd07a0b33b5a6c421f76198e9deb66843b8d827b0b9e4a16f86", @@ -641,21 +646,21 @@ "typeString": "literal_string \"Owners have already been setup\"" } ], - "id": 1250, + "id": 1368, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "990:7:6", + "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": 1255, + "id": 1373, "isConstant": false, "isLValue": false, "isPure": false, @@ -663,15 +668,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "990:57:6", + "src": "997:57:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1256, + "id": 1374, "nodeType": "ExpressionStatement", - "src": "990:57:6" + "src": "997:57:6" }, { "expression": { @@ -683,19 +688,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1261, + "id": 1379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1258, + "id": 1376, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "1140:10:6", + "referencedDeclaration": 1365, + "src": "1147:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -707,18 +712,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1259, + "id": 1377, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1154:7:6", + "referencedDeclaration": 1363, + "src": "1161:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1260, + "id": 1378, "isConstant": false, "isLValue": false, "isPure": false, @@ -726,13 +731,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1154:14:6", + "src": "1161:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1140:28:6", + "src": "1147:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -741,14 +746,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1262, + "id": 1380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1170:37:6", + "src": "1177:37:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", @@ -768,21 +773,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 1257, + "id": 1375, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1132:7:6", + "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": 1263, + "id": 1381, "isConstant": false, "isLValue": false, "isPure": false, @@ -790,15 +795,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1132:76:6", + "src": "1139:76:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1264, + "id": 1382, "nodeType": "ExpressionStatement", - "src": "1132:76:6" + "src": "1139:76:6" }, { "expression": { @@ -810,19 +815,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1268, + "id": 1386, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1266, + "id": 1384, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "1278:10:6", + "referencedDeclaration": 1365, + "src": "1285:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -833,14 +838,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1267, + "id": 1385, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1292:1:6", + "src": "1299:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -848,7 +853,7 @@ }, "value": "1" }, - "src": "1278:15:6", + "src": "1285:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -857,14 +862,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1269, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1295:38:6", + "src": "1302:38:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", @@ -884,21 +889,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 1265, + "id": 1383, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1270:7:6", + "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": 1270, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": false, @@ -906,28 +911,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1270:64:6", + "src": "1277:64:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1271, + "id": 1389, "nodeType": "ExpressionStatement", - "src": "1270:64:6" + "src": "1277:64:6" }, { "assignments": [ - 1273 + 1391 ], "declarations": [ { "constant": false, - "id": 1273, + "id": 1391, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "1381:20:6", + "scope": 1462, + "src": "1388:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -935,10 +940,11 @@ "typeString": "address" }, "typeName": { - "id": 1272, + "id": 1390, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1381:7:6", + "src": "1388:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -948,41 +954,41 @@ "visibility": "internal" } ], - "id": 1275, + "id": 1393, "initialValue": { "argumentTypes": null, - "id": 1274, + "id": 1392, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "1404:15:6", + "referencedDeclaration": 1352, + "src": "1411:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1381:38:6" + "src": "1388:38:6" }, { "body": { - "id": 1323, + "id": 1445, "nodeType": "Block", - "src": "1474:388:6", + "src": "1481:406:6", "statements": [ { "assignments": [ - 1288 + 1406 ], "declarations": [ { "constant": false, - "id": 1288, + "id": 1406, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "1533:13:6", + "scope": 1445, + "src": "1540:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -990,10 +996,11 @@ "typeString": "address" }, "typeName": { - "id": 1287, + "id": 1405, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1533:7:6", + "src": "1540:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1003,31 +1010,31 @@ "visibility": "internal" } ], - "id": 1292, + "id": 1410, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1289, + "id": 1407, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1549:7:6", + "referencedDeclaration": 1363, + "src": "1556:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1291, + "id": 1409, "indexExpression": { "argumentTypes": null, - "id": 1290, + "id": 1408, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1277, - "src": "1557:1:6", + "referencedDeclaration": 1395, + "src": "1564:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1038,14 +1045,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1549:10:6", + "src": "1556:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1533:26:6" + "src": "1540:26:6" }, { "expression": { @@ -1057,7 +1064,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1300, + "id": 1420, "isConstant": false, "isLValue": false, "isPure": false, @@ -1068,19 +1075,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1296, + "id": 1416, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1294, + "id": 1412, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1581:5:6", + "referencedDeclaration": 1406, + "src": "1588:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1090,23 +1097,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1295, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "1590:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "1597:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "1581:10:6", + "src": "1588:19:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1120,19 +1165,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1299, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1297, + "id": 1417, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1595:5:6", + "referencedDeclaration": 1406, + "src": "1611:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1142,24 +1187,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1298, + "id": 1418, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "1604:15:6", + "referencedDeclaration": 1352, + "src": "1620:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1595:24:6", + "src": "1611:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1581:38:6", + "src": "1588:47:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1168,14 +1213,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1301, + "id": 1421, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1621:32:6", + "src": "1637:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -1195,21 +1240,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1293, + "id": 1411, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1573:7:6", + "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": 1302, + "id": 1422, "isConstant": false, "isLValue": false, "isPure": false, @@ -1217,15 +1262,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1573:81:6", + "src": "1580:90:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1303, + "id": 1423, "nodeType": "ExpressionStatement", - "src": "1573:81:6" + "src": "1580:90:6" }, { "expression": { @@ -1237,7 +1282,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1309, + "id": 1431, "isConstant": false, "isLValue": false, "isPure": false, @@ -1246,26 +1291,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1305, + "id": 1425, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "1720:6:6", + "referencedDeclaration": 1356, + "src": "1736:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1307, + "id": 1427, "indexExpression": { "argumentTypes": null, - "id": 1306, + "id": 1426, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1727:5:6", + "referencedDeclaration": 1406, + "src": "1743:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1276,7 +1321,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1720:13:6", + "src": "1736:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1286,23 +1331,61 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1308, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "1737:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "1753:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "1720:18:6", + "src": "1736:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1311,14 +1394,14 @@ { "argumentTypes": null, "hexValue": "4475706c6963617465206f776e657220616464726573732070726f7669646564", - "id": 1310, + "id": 1432, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1740:34:6", + "src": "1765:34:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a803fa289679098e38a7f1f6fe43056918c5ab5af07441cb8db77b949c165ca1", @@ -1338,21 +1421,21 @@ "typeString": "literal_string \"Duplicate owner address provided\"" } ], - "id": 1304, + "id": 1424, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1712:7:6", + "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": 1311, + "id": 1433, "isConstant": false, "isLValue": false, "isPure": false, @@ -1360,20 +1443,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1712:63:6", + "src": "1728:72:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1312, + "id": 1434, "nodeType": "ExpressionStatement", - "src": "1712:63:6" + "src": "1728:72:6" }, { "expression": { "argumentTypes": null, - "id": 1317, + "id": 1439, "isConstant": false, "isLValue": false, "isPure": false, @@ -1382,26 +1465,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1313, + "id": 1435, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "1789:6:6", + "referencedDeclaration": 1356, + "src": "1814:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1315, + "id": 1437, "indexExpression": { "argumentTypes": null, - "id": 1314, + "id": 1436, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1273, - "src": "1796:12:6", + "referencedDeclaration": 1391, + "src": "1821:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1412,7 +1495,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1789:20:6", + "src": "1814:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1422,43 +1505,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1316, + "id": 1438, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1812:5:6", + "referencedDeclaration": 1406, + "src": "1837:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1789:28:6", + "src": "1814:28:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1318, + "id": 1440, "nodeType": "ExpressionStatement", - "src": "1789:28:6" + "src": "1814:28:6" }, { "expression": { "argumentTypes": null, - "id": 1321, + "id": 1443, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1319, + "id": 1441, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1273, - "src": "1831:12:6", + "referencedDeclaration": 1391, + "src": "1856:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1468,26 +1551,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1320, + "id": 1442, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1846:5:6", + "referencedDeclaration": 1406, + "src": "1871:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1831:20:6", + "src": "1856:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1322, + "id": 1444, "nodeType": "ExpressionStatement", - "src": "1831:20:6" + "src": "1856:20:6" } ] }, @@ -1497,19 +1580,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1283, + "id": 1401, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1280, + "id": 1398, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1277, - "src": "1449:1:6", + "referencedDeclaration": 1395, + "src": "1456:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1521,18 +1604,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1281, + "id": 1399, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1453:7:6", + "referencedDeclaration": 1363, + "src": "1460:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1282, + "id": 1400, "isConstant": false, "isLValue": false, "isPure": false, @@ -1540,31 +1623,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1453:14:6", + "src": "1460:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1449:18:6", + "src": "1456:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1324, + "id": 1446, "initializationExpression": { "assignments": [ - 1277 + 1395 ], "declarations": [ { "constant": false, - "id": 1277, + "id": 1395, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "1434:9:6", + "scope": 1446, + "src": "1441:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1572,10 +1655,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1276, + "id": 1394, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1434:7:6", + "src": "1441:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1585,18 +1668,18 @@ "visibility": "internal" } ], - "id": 1279, + "id": 1397, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1278, + "id": 1396, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1446:1:6", + "src": "1453:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1605,12 +1688,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1434:13:6" + "src": "1441:13:6" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1285, + "id": 1403, "isConstant": false, "isLValue": false, "isPure": false, @@ -1618,15 +1701,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1469:3:6", + "src": "1476:3:6", "subExpression": { "argumentTypes": null, - "id": 1284, + "id": 1402, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1277, - "src": "1469:1:6", + "referencedDeclaration": 1395, + "src": "1476:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1637,17 +1720,17 @@ "typeString": "uint256" } }, - "id": 1286, + "id": 1404, "nodeType": "ExpressionStatement", - "src": "1469:3:6" + "src": "1476:3:6" }, "nodeType": "ForStatement", - "src": "1429:433:6" + "src": "1436:451:6" }, { "expression": { "argumentTypes": null, - "id": 1329, + "id": 1451, "isConstant": false, "isLValue": false, "isPure": false, @@ -1656,26 +1739,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1325, + "id": 1447, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "1871:6:6", + "referencedDeclaration": 1356, + "src": "1896:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1327, + "id": 1449, "indexExpression": { "argumentTypes": null, - "id": 1326, + "id": 1448, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1273, - "src": "1878:12:6", + "referencedDeclaration": 1391, + "src": "1903:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1686,7 +1769,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1871:20:6", + "src": "1896:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1696,43 +1779,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1328, + "id": 1450, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "1894:15:6", + "referencedDeclaration": 1352, + "src": "1919:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1871:38:6", + "src": "1896:38:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1330, + "id": 1452, "nodeType": "ExpressionStatement", - "src": "1871:38:6" + "src": "1896:38:6" }, { "expression": { "argumentTypes": null, - "id": 1334, + "id": 1456, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1331, + "id": 1453, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "1919:10:6", + "referencedDeclaration": 1358, + "src": "1944:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1744,18 +1827,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1332, + "id": 1454, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1932:7:6", + "referencedDeclaration": 1363, + "src": "1957:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1333, + "id": 1455, "isConstant": false, "isLValue": false, "isPure": false, @@ -1763,38 +1846,38 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1932:14:6", + "src": "1957:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1919:27:6", + "src": "1944:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1335, + "id": 1457, "nodeType": "ExpressionStatement", - "src": "1919:27:6" + "src": "1944:27:6" }, { "expression": { "argumentTypes": null, - "id": 1338, + "id": 1460, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1336, + "id": 1458, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "1956:9:6", + "referencedDeclaration": 1360, + "src": "1981:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1804,66 +1887,66 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1337, + "id": 1459, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "1968:10:6", + "referencedDeclaration": 1365, + "src": "1993:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1956:22:6", + "src": "1981:22:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1339, + "id": 1461, "nodeType": "ExpressionStatement", - "src": "1956:22:6" + "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": 1341, + "id": 1463, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setupOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 1248, + "id": 1366, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1245, + "id": 1363, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "796:17:6", + "scope": 1463, + "src": "796:24:6", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 1243, + "id": 1361, "name": "address", "nodeType": "ElementaryTypeName", "src": "796:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1244, + "id": 1362, "length": null, "nodeType": "ArrayTypeName", "src": "796:9:6", @@ -1877,11 +1960,11 @@ }, { "constant": false, - "id": 1247, + "id": 1365, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "815:18:6", + "scope": 1463, + "src": "822:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1889,10 +1972,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1246, + "id": 1364, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "815:7:6", + "src": "822:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1902,26 +1985,25 @@ "visibility": "internal" } ], - "src": "795:39:6" + "src": "795:46:6" }, - "payable": false, "returnParameters": { - "id": 1249, + "id": 1367, "nodeType": "ParameterList", "parameters": [], - "src": "856:0:6" + "src": "863:0:6" }, - "scope": 1652, - "src": "775:1210:6", + "scope": 1796, + "src": "775:1235:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1399, + "id": 1525, "nodeType": "Block", - "src": "2329:523:6", + "src": "2354:541:6", "statements": [ { "expression": { @@ -1933,7 +2015,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1357, + "id": 1481, "isConstant": false, "isLValue": false, "isPure": false, @@ -1944,19 +2026,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1353, + "id": 1477, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1351, + "id": 1473, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2388:5:6", + "referencedDeclaration": 1465, + "src": "2413:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1966,23 +2048,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1352, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "2397:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2422:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "2388:10:6", + "src": "2413:19:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1996,19 +2116,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1356, + "id": 1480, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1354, + "id": 1478, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2402:5:6", + "referencedDeclaration": 1465, + "src": "2436:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2018,24 +2138,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1355, + "id": 1479, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "2411:15:6", + "referencedDeclaration": 1352, + "src": "2445:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2402:24:6", + "src": "2436:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2388:38:6", + "src": "2413:47:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2044,14 +2164,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1358, + "id": 1482, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2428:32:6", + "src": "2462:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -2071,21 +2191,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1350, + "id": 1472, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2380:7:6", + "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": 1359, + "id": 1483, "isConstant": false, "isLValue": false, "isPure": false, @@ -2093,15 +2213,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2380:81:6", + "src": "2405:90:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1360, + "id": 1484, "nodeType": "ExpressionStatement", - "src": "2380:81:6" + "src": "2405:90:6" }, { "expression": { @@ -2113,7 +2233,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1366, + "id": 1492, "isConstant": false, "isLValue": false, "isPure": false, @@ -2122,26 +2242,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1362, + "id": 1486, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2519:6:6", + "referencedDeclaration": 1356, + "src": "2553:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1364, + "id": 1488, "indexExpression": { "argumentTypes": null, - "id": 1363, + "id": 1487, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2526:5:6", + "referencedDeclaration": 1465, + "src": "2560:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2152,7 +2272,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2519:13:6", + "src": "2553:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2162,23 +2282,61 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1365, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "2536:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2570:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "2519:18:6", + "src": "2553:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2187,14 +2345,14 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1367, + "id": 1493, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2539:29:6", + "src": "2582:29:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", @@ -2214,21 +2372,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 1361, + "id": 1485, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2511:7:6", + "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": 1368, + "id": 1494, "isConstant": false, "isLValue": false, "isPure": false, @@ -2236,20 +2394,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2511:58:6", + "src": "2545:67:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1369, + "id": 1495, "nodeType": "ExpressionStatement", - "src": "2511:58:6" + "src": "2545:67:6" }, { "expression": { "argumentTypes": null, - "id": 1376, + "id": 1502, "isConstant": false, "isLValue": false, "isPure": false, @@ -2258,26 +2416,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1370, + "id": 1496, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2579:6:6", + "referencedDeclaration": 1356, + "src": "2622:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1372, + "id": 1498, "indexExpression": { "argumentTypes": null, - "id": 1371, + "id": 1497, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2586:5:6", + "referencedDeclaration": 1465, + "src": "2629:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2288,7 +2446,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2579:13:6", + "src": "2622:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2300,26 +2458,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1373, + "id": 1499, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2595:6:6", + "referencedDeclaration": 1356, + "src": "2638:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1375, + "id": 1501, "indexExpression": { "argumentTypes": null, - "id": 1374, + "id": 1500, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "2602:15:6", + "referencedDeclaration": 1352, + "src": "2645:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2330,26 +2488,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2595:23:6", + "src": "2638:23:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2579:39:6", + "src": "2622:39:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1377, + "id": 1503, "nodeType": "ExpressionStatement", - "src": "2579:39:6" + "src": "2622:39:6" }, { "expression": { "argumentTypes": null, - "id": 1382, + "id": 1508, "isConstant": false, "isLValue": false, "isPure": false, @@ -2358,26 +2516,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1378, + "id": 1504, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2628:6:6", + "referencedDeclaration": 1356, + "src": "2671:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1380, + "id": 1506, "indexExpression": { "argumentTypes": null, - "id": 1379, + "id": 1505, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "2635:15:6", + "referencedDeclaration": 1352, + "src": "2678:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2388,7 +2546,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2628:23:6", + "src": "2671:23:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2398,31 +2556,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1381, + "id": 1507, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2654:5:6", + "referencedDeclaration": 1465, + "src": "2697:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2628:31:6", + "src": "2671:31:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1383, + "id": 1509, "nodeType": "ExpressionStatement", - "src": "2628:31:6" + "src": "2671:31:6" }, { "expression": { "argumentTypes": null, - "id": 1385, + "id": 1511, "isConstant": false, "isLValue": false, "isPure": false, @@ -2430,15 +2588,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2669:12:6", + "src": "2712:12:6", "subExpression": { "argumentTypes": null, - "id": 1384, + "id": 1510, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "2669:10:6", + "referencedDeclaration": 1358, + "src": "2712:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2449,9 +2607,9 @@ "typeString": "uint256" } }, - "id": 1386, + "id": 1512, "nodeType": "ExpressionStatement", - "src": "2669:12:6" + "src": "2712:12:6" }, { "eventCall": { @@ -2459,12 +2617,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1388, + "id": 1514, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2707:5:6", + "referencedDeclaration": 1465, + "src": "2750:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2478,18 +2636,18 @@ "typeString": "address" } ], - "id": 1387, + "id": 1513, "name": "AddedOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "2696:10:6", + "referencedDeclaration": 1339, + "src": "2739:10:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1389, + "id": 1515, "isConstant": false, "isLValue": false, "isPure": false, @@ -2497,15 +2655,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2696:17:6", + "src": "2739:17:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1390, + "id": 1516, "nodeType": "EmitStatement", - "src": "2691:22:6" + "src": "2734:22:6" }, { "condition": { @@ -2514,19 +2672,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1393, + "id": 1519, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1391, + "id": 1517, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "2781:9:6", + "referencedDeclaration": 1360, + "src": "2824:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2536,39 +2694,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1392, + "id": 1518, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "2794:10:6", + "referencedDeclaration": 1467, + "src": "2837:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2781:23:6", + "src": "2824:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1398, + "id": 1524, "nodeType": "IfStatement", - "src": "2777:68:6", + "src": "2820:68:6", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1395, + "id": 1521, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "2834:10:6", + "referencedDeclaration": 1467, + "src": "2877:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2582,18 +2740,18 @@ "typeString": "uint256" } ], - "id": 1394, + "id": 1520, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1580, - "src": "2818:15:6", + "referencedDeclaration": 1718, + "src": "2861:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1396, + "id": 1522, "isConstant": false, "isLValue": false, "isPure": false, @@ -2601,58 +2759,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2818:27:6", + "src": "2861:27:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1397, + "id": 1523, "nodeType": "ExpressionStatement", - "src": "2818:27:6" + "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": 1400, + "id": 1526, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1348, + "id": 1470, "modifierName": { "argumentTypes": null, - "id": 1347, + "id": 1469, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "2314:10:6", + "referencedDeclaration": 1880, + "src": "2339:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2314:10:6" + "src": "2339:10:6" } ], "name": "addOwnerWithThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1346, + "id": 1468, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1343, + "id": 1465, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1400, - "src": "2256:13:6", + "scope": 1526, + "src": "2281:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2660,10 +2817,11 @@ "typeString": "address" }, "typeName": { - "id": 1342, + "id": 1464, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2256:7:6", + "src": "2281:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2674,11 +2832,11 @@ }, { "constant": false, - "id": 1345, + "id": 1467, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1400, - "src": "2271:18:6", + "scope": 1526, + "src": "2296:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2686,10 +2844,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1344, + "id": 1466, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2271:7:6", + "src": "2296:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2699,26 +2857,25 @@ "visibility": "internal" } ], - "src": "2255:35:6" + "src": "2280:35:6" }, - "payable": false, "returnParameters": { - "id": 1349, + "id": 1471, "nodeType": "ParameterList", "parameters": [], - "src": "2329:0:6" + "src": "2354:0:6" }, - "scope": 1652, - "src": "2225:627:6", + "scope": 1796, + "src": "2250:645:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1469, + "id": 1599, "nodeType": "Block", - "src": "3307:704:6", + "src": "3350:722:6", "statements": [ { "expression": { @@ -2730,7 +2887,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1416, + "id": 1542, "isConstant": false, "isLValue": false, "isPure": false, @@ -2741,19 +2898,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1414, + "id": 1540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1412, + "id": 1538, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "3402:10:6", + "referencedDeclaration": 1358, + "src": "3445:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2764,14 +2921,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1413, + "id": 1539, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3415:1:6", + "src": "3458:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -2779,7 +2936,7 @@ }, "value": "1" }, - "src": "3402:14:6", + "src": "3445:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2789,18 +2946,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 1415, + "id": 1541, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "3420:10:6", + "referencedDeclaration": 1532, + "src": "3463:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3402:28:6", + "src": "3445:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2809,14 +2966,14 @@ { "argumentTypes": null, "hexValue": "4e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64", - "id": 1417, + "id": 1543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3432:55:6", + "src": "3475:55:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_839b4c4db845de24ec74ef067d85431087d6987a4c904418ee4f6ec699c02482", @@ -2836,21 +2993,21 @@ "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" } ], - "id": 1411, + "id": 1537, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "3394:7:6", + "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": 1418, + "id": 1544, "isConstant": false, "isLValue": false, "isPure": false, @@ -2858,15 +3015,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3394:94:6", + "src": "3437:94:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1419, + "id": 1545, "nodeType": "ExpressionStatement", - "src": "3394:94:6" + "src": "3437:94:6" }, { "expression": { @@ -2878,7 +3035,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1427, + "id": 1555, "isConstant": false, "isLValue": false, "isPure": false, @@ -2889,19 +3046,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1423, + "id": 1551, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1421, + "id": 1547, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3586:5:6", + "referencedDeclaration": 1530, + "src": "3629:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2911,23 +3068,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1422, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "3595:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "3638:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "3586:10:6", + "src": "3629:19:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2941,19 +3136,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1426, + "id": 1554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1424, + "id": 1552, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3600:5:6", + "referencedDeclaration": 1530, + "src": "3652:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2963,24 +3158,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1425, + "id": 1553, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "3609:15:6", + "referencedDeclaration": 1352, + "src": "3661:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3600:24:6", + "src": "3652:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3586:38:6", + "src": "3629:47:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2989,14 +3184,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1428, + "id": 1556, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3626:32:6", + "src": "3678:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -3016,21 +3211,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1420, + "id": 1546, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "3578:7:6", + "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": 1429, + "id": 1557, "isConstant": false, "isLValue": false, "isPure": false, @@ -3038,15 +3233,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3578:81:6", + "src": "3621:90:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1430, + "id": 1558, "nodeType": "ExpressionStatement", - "src": "3578:81:6" + "src": "3621:90:6" }, { "expression": { @@ -3058,7 +3253,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1436, + "id": 1564, "isConstant": false, "isLValue": false, "isPure": false, @@ -3067,26 +3262,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1432, + "id": 1560, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3677:6:6", + "referencedDeclaration": 1356, + "src": "3729:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1434, + "id": 1562, "indexExpression": { "argumentTypes": null, - "id": 1433, + "id": 1561, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "3684:9:6", + "referencedDeclaration": 1528, + "src": "3736:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3097,7 +3292,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3677:17:6", + "src": "3729:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3107,18 +3302,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1435, + "id": 1563, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3698:5:6", + "referencedDeclaration": 1530, + "src": "3750:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3677:26:6", + "src": "3729:26:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3127,14 +3322,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1437, + "id": 1565, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3705:40:6", + "src": "3757:40:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", @@ -3154,21 +3349,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 1431, + "id": 1559, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "3669:7:6", + "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": 1438, + "id": 1566, "isConstant": false, "isLValue": false, "isPure": false, @@ -3176,20 +3371,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3669:77:6", + "src": "3721:77:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1439, + "id": 1567, "nodeType": "ExpressionStatement", - "src": "3669:77:6" + "src": "3721:77:6" }, { "expression": { "argumentTypes": null, - "id": 1446, + "id": 1574, "isConstant": false, "isLValue": false, "isPure": false, @@ -3198,26 +3393,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1440, + "id": 1568, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3756:6:6", + "referencedDeclaration": 1356, + "src": "3808:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1442, + "id": 1570, "indexExpression": { "argumentTypes": null, - "id": 1441, + "id": 1569, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "3763:9:6", + "referencedDeclaration": 1528, + "src": "3815:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3228,7 +3423,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3756:17:6", + "src": "3808:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3240,26 +3435,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1443, + "id": 1571, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3776:6:6", + "referencedDeclaration": 1356, + "src": "3828:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1445, + "id": 1573, "indexExpression": { "argumentTypes": null, - "id": 1444, + "id": 1572, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3783:5:6", + "referencedDeclaration": 1530, + "src": "3835:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3270,26 +3465,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3776:13:6", + "src": "3828:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3756:33:6", + "src": "3808:33:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1447, + "id": 1575, "nodeType": "ExpressionStatement", - "src": "3756:33:6" + "src": "3808:33:6" }, { "expression": { "argumentTypes": null, - "id": 1452, + "id": 1582, "isConstant": false, "isLValue": false, "isPure": false, @@ -3298,26 +3493,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1448, + "id": 1576, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3799:6:6", + "referencedDeclaration": 1356, + "src": "3851:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1450, + "id": 1578, "indexExpression": { "argumentTypes": null, - "id": 1449, + "id": 1577, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3806:5:6", + "referencedDeclaration": 1530, + "src": "3858:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3328,7 +3523,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3799:13:6", + "src": "3851:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3338,36 +3533,74 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "hexValue": "30", - "id": 1451, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "3815:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "3867:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "3799:17:6", + "src": "3851:26:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1453, + "id": 1583, "nodeType": "ExpressionStatement", - "src": "3799:17:6" + "src": "3851:26:6" }, { "expression": { "argumentTypes": null, - "id": 1455, + "id": 1585, "isConstant": false, "isLValue": false, "isPure": false, @@ -3375,15 +3608,15 @@ "nodeType": "UnaryOperation", "operator": "--", "prefix": false, - "src": "3826:12:6", + "src": "3887:12:6", "subExpression": { "argumentTypes": null, - "id": 1454, + "id": 1584, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "3826:10:6", + "referencedDeclaration": 1358, + "src": "3887:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3394,9 +3627,9 @@ "typeString": "uint256" } }, - "id": 1456, + "id": 1586, "nodeType": "ExpressionStatement", - "src": "3826:12:6" + "src": "3887:12:6" }, { "eventCall": { @@ -3404,12 +3637,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1458, + "id": 1588, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3866:5:6", + "referencedDeclaration": 1530, + "src": "3927:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3423,18 +3656,18 @@ "typeString": "address" } ], - "id": 1457, + "id": 1587, "name": "RemovedOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1225, - "src": "3853:12:6", + "referencedDeclaration": 1343, + "src": "3914:12:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1459, + "id": 1589, "isConstant": false, "isLValue": false, "isPure": false, @@ -3442,15 +3675,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3853:19:6", + "src": "3914:19:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1460, + "id": 1590, "nodeType": "EmitStatement", - "src": "3848:24:6" + "src": "3909:24:6" }, { "condition": { @@ -3459,19 +3692,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1463, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1461, + "id": 1591, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "3940:9:6", + "referencedDeclaration": 1360, + "src": "4001:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3481,39 +3714,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1462, + "id": 1592, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "3953:10:6", + "referencedDeclaration": 1532, + "src": "4014:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3940:23:6", + "src": "4001:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1468, + "id": 1598, "nodeType": "IfStatement", - "src": "3936:68:6", + "src": "3997:68:6", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1465, + "id": 1595, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "3993:10:6", + "referencedDeclaration": 1532, + "src": "4054:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3527,18 +3760,18 @@ "typeString": "uint256" } ], - "id": 1464, + "id": 1594, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1580, - "src": "3977:15:6", + "referencedDeclaration": 1718, + "src": "4038:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1466, + "id": 1596, "isConstant": false, "isLValue": false, "isPure": false, @@ -3546,58 +3779,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3977:27:6", + "src": "4038:27:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1467, + "id": 1597, "nodeType": "ExpressionStatement", - "src": "3977:27:6" + "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": 1470, + "id": 1600, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1409, + "id": 1535, "modifierName": { "argumentTypes": null, - "id": 1408, + "id": 1534, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "3292:10:6", + "referencedDeclaration": 1880, + "src": "3335:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3292:10:6" + "src": "3335:10:6" } ], "name": "removeOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1407, + "id": 1533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1402, + "id": 1528, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1470, - "src": "3215:17:6", + "scope": 1600, + "src": "3258:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3605,10 +3837,11 @@ "typeString": "address" }, "typeName": { - "id": 1401, + "id": 1527, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3215:7:6", + "src": "3258:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3619,11 +3852,11 @@ }, { "constant": false, - "id": 1404, + "id": 1530, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1470, - "src": "3234:13:6", + "scope": 1600, + "src": "3277:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3631,10 +3864,11 @@ "typeString": "address" }, "typeName": { - "id": 1403, + "id": 1529, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3234:7:6", + "src": "3277:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3645,11 +3879,11 @@ }, { "constant": false, - "id": 1406, + "id": 1532, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1470, - "src": "3249:18:6", + "scope": 1600, + "src": "3292:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3657,10 +3891,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1405, + "id": 1531, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3249:7:6", + "src": "3292:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3670,26 +3904,25 @@ "visibility": "internal" } ], - "src": "3214:54:6" + "src": "3257:54:6" }, - "payable": false, "returnParameters": { - "id": 1410, + "id": 1536, "nodeType": "ParameterList", "parameters": [], - "src": "3307:0:6" + "src": "3350:0:6" }, - "scope": 1652, - "src": "3194:817:6", + "scope": 1796, + "src": "3237:835:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1549, + "id": 1687, "nodeType": "Block", - "src": "4457:711:6", + "src": "4518:747:6", "statements": [ { "expression": { @@ -3701,7 +3934,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1488, + "id": 1620, "isConstant": false, "isLValue": false, "isPure": false, @@ -3712,19 +3945,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1484, + "id": 1616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1482, + "id": 1612, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4516:8:6", + "referencedDeclaration": 1606, + "src": "4577:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3734,23 +3967,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1483, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "4528:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "4589:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "4516:13:6", + "src": "4577:22:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3764,19 +4035,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1487, + "id": 1619, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1485, + "id": 1617, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4533:8:6", + "referencedDeclaration": 1606, + "src": "4603:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3786,24 +4057,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1486, + "id": 1618, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "4545:15:6", + "referencedDeclaration": 1352, + "src": "4615:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4533:27:6", + "src": "4603:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4516:44:6", + "src": "4577:53:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3812,14 +4083,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1489, + "id": 1621, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4562:32:6", + "src": "4632:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -3839,21 +4110,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1481, + "id": 1611, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "4508:7:6", + "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": 1490, + "id": 1622, "isConstant": false, "isLValue": false, "isPure": false, @@ -3861,15 +4132,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4508:87:6", + "src": "4569:96:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1491, + "id": 1623, "nodeType": "ExpressionStatement", - "src": "4508:87:6" + "src": "4569:96:6" }, { "expression": { @@ -3881,7 +4152,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1497, + "id": 1631, "isConstant": false, "isLValue": false, "isPure": false, @@ -3890,26 +4161,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1493, + "id": 1625, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "4653:6:6", + "referencedDeclaration": 1356, + "src": "4723:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1495, + "id": 1627, "indexExpression": { "argumentTypes": null, - "id": 1494, + "id": 1626, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4660:8:6", + "referencedDeclaration": 1606, + "src": "4730:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3920,7 +4191,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4653:16:6", + "src": "4723:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3930,23 +4201,61 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1496, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "4673:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "4743:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "4653:21:6", + "src": "4723:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3955,14 +4264,14 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1498, + "id": 1632, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4676:29:6", + "src": "4755:29:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", @@ -3982,21 +4291,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 1492, + "id": 1624, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "4645:7:6", + "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": 1499, + "id": 1633, "isConstant": false, "isLValue": false, "isPure": false, @@ -4004,15 +4313,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4645:61:6", + "src": "4715:70:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1500, + "id": 1634, "nodeType": "ExpressionStatement", - "src": "4645:61:6" + "src": "4715:70:6" }, { "expression": { @@ -4024,7 +4333,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1508, + "id": 1644, "isConstant": false, "isLValue": false, "isPure": false, @@ -4035,19 +4344,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1504, + "id": 1640, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1502, + "id": 1636, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "4807:8:6", + "referencedDeclaration": 1604, + "src": "4886:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4057,23 +4366,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1503, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "4819:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "4898:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "4807:13:6", + "src": "4886:22:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4087,19 +4434,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1507, + "id": 1643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1505, + "id": 1641, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "4824:8:6", + "referencedDeclaration": 1604, + "src": "4912:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4109,24 +4456,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1506, + "id": 1642, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "4836:15:6", + "referencedDeclaration": 1352, + "src": "4924:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4824:27:6", + "src": "4912:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4807:44:6", + "src": "4886:53:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4135,14 +4482,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1509, + "id": 1645, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4853:32:6", + "src": "4941:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -4162,21 +4509,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1501, + "id": 1635, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "4799:7:6", + "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": 1510, + "id": 1646, "isConstant": false, "isLValue": false, "isPure": false, @@ -4184,15 +4531,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4799:87:6", + "src": "4878:96:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1511, + "id": 1647, "nodeType": "ExpressionStatement", - "src": "4799:87:6" + "src": "4878:96:6" }, { "expression": { @@ -4204,7 +4551,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1517, + "id": 1653, "isConstant": false, "isLValue": false, "isPure": false, @@ -4213,26 +4560,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1513, + "id": 1649, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "4904:6:6", + "referencedDeclaration": 1356, + "src": "4992:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1515, + "id": 1651, "indexExpression": { "argumentTypes": null, - "id": 1514, + "id": 1650, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "4911:9:6", + "referencedDeclaration": 1602, + "src": "4999:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4243,7 +4590,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4904:17:6", + "src": "4992:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4253,18 +4600,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1516, + "id": 1652, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "4925:8:6", + "referencedDeclaration": 1604, + "src": "5013:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4904:29:6", + "src": "4992:29:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4273,14 +4620,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1518, + "id": 1654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4935:40:6", + "src": "5023:40:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", @@ -4300,21 +4647,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 1512, + "id": 1648, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "4896:7:6", + "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": 1519, + "id": 1655, "isConstant": false, "isLValue": false, "isPure": false, @@ -4322,20 +4669,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4896:80:6", + "src": "4984:80:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1520, + "id": 1656, "nodeType": "ExpressionStatement", - "src": "4896:80:6" + "src": "4984:80:6" }, { "expression": { "argumentTypes": null, - "id": 1527, + "id": 1663, "isConstant": false, "isLValue": false, "isPure": false, @@ -4344,26 +4691,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1521, + "id": 1657, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "4986:6:6", + "referencedDeclaration": 1356, + "src": "5074:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1523, + "id": 1659, "indexExpression": { "argumentTypes": null, - "id": 1522, + "id": 1658, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4993:8:6", + "referencedDeclaration": 1606, + "src": "5081:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4374,7 +4721,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4986:16:6", + "src": "5074:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4386,26 +4733,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1524, + "id": 1660, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "5005:6:6", + "referencedDeclaration": 1356, + "src": "5093:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1526, + "id": 1662, "indexExpression": { "argumentTypes": null, - "id": 1525, + "id": 1661, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "5012:8:6", + "referencedDeclaration": 1604, + "src": "5100:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4416,26 +4763,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5005:16:6", + "src": "5093:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4986:35:6", + "src": "5074:35:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1528, + "id": 1664, "nodeType": "ExpressionStatement", - "src": "4986:35:6" + "src": "5074:35:6" }, { "expression": { "argumentTypes": null, - "id": 1533, + "id": 1669, "isConstant": false, "isLValue": false, "isPure": false, @@ -4444,26 +4791,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1529, + "id": 1665, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "5031:6:6", + "referencedDeclaration": 1356, + "src": "5119:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1531, + "id": 1667, "indexExpression": { "argumentTypes": null, - "id": 1530, + "id": 1666, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "5038:9:6", + "referencedDeclaration": 1602, + "src": "5126:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4474,7 +4821,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5031:17:6", + "src": "5119:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4484,31 +4831,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1532, + "id": 1668, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "5051:8:6", + "referencedDeclaration": 1606, + "src": "5139:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5031:28:6", + "src": "5119:28:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1534, + "id": 1670, "nodeType": "ExpressionStatement", - "src": "5031:28:6" + "src": "5119:28:6" }, { "expression": { "argumentTypes": null, - "id": 1539, + "id": 1677, "isConstant": false, "isLValue": false, "isPure": false, @@ -4517,26 +4864,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1535, + "id": 1671, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "5069:6:6", + "referencedDeclaration": 1356, + "src": "5157:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1537, + "id": 1673, "indexExpression": { "argumentTypes": null, - "id": 1536, + "id": 1672, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "5076:8:6", + "referencedDeclaration": 1604, + "src": "5164:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4547,7 +4894,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5069:16:6", + "src": "5157:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4557,31 +4904,69 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "hexValue": "30", - "id": 1538, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "5088:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "5176:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "5069:20:6", + "src": "5157:29:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1540, + "id": 1678, "nodeType": "ExpressionStatement", - "src": "5069:20:6" + "src": "5157:29:6" }, { "eventCall": { @@ -4589,12 +4974,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1542, + "id": 1680, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "5117:8:6", + "referencedDeclaration": 1604, + "src": "5214:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4608,18 +4993,18 @@ "typeString": "address" } ], - "id": 1541, + "id": 1679, "name": "RemovedOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1225, - "src": "5104:12:6", + "referencedDeclaration": 1343, + "src": "5201:12:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1543, + "id": 1681, "isConstant": false, "isLValue": false, "isPure": false, @@ -4627,15 +5012,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5104:22:6", + "src": "5201:22:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1544, + "id": 1682, "nodeType": "EmitStatement", - "src": "5099:27:6" + "src": "5196:27:6" }, { "eventCall": { @@ -4643,12 +5028,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1546, + "id": 1684, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "5152:8:6", + "referencedDeclaration": 1606, + "src": "5249:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4662,18 +5047,18 @@ "typeString": "address" } ], - "id": 1545, + "id": 1683, "name": "AddedOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5141:10:6", + "referencedDeclaration": 1339, + "src": "5238:10:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1547, + "id": 1685, "isConstant": false, "isLValue": false, "isPure": false, @@ -4681,57 +5066,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5141:20:6", + "src": "5238:20:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1548, + "id": 1686, "nodeType": "EmitStatement", - "src": "5136:25:6" + "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": 1550, + "id": 1688, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1479, + "id": 1609, "modifierName": { "argumentTypes": null, - "id": 1478, + "id": 1608, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "4442:10:6", + "referencedDeclaration": 1880, + "src": "4503:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4442:10:6" + "src": "4503:10:6" } ], "name": "swapOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1477, + "id": 1607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1472, + "id": 1602, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1550, - "src": "4364:17:6", + "scope": 1688, + "src": "4425:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4739,10 +5123,11 @@ "typeString": "address" }, "typeName": { - "id": 1471, + "id": 1601, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4364:7:6", + "src": "4425:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4753,11 +5138,11 @@ }, { "constant": false, - "id": 1474, + "id": 1604, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 1550, - "src": "4383:16:6", + "scope": 1688, + "src": "4444:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4765,10 +5150,11 @@ "typeString": "address" }, "typeName": { - "id": 1473, + "id": 1603, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4383:7:6", + "src": "4444:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4779,11 +5165,11 @@ }, { "constant": false, - "id": 1476, + "id": 1606, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 1550, - "src": "4401:16:6", + "scope": 1688, + "src": "4462:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4791,10 +5177,11 @@ "typeString": "address" }, "typeName": { - "id": 1475, + "id": 1605, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4401:7:6", + "src": "4462:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4804,26 +5191,25 @@ "visibility": "internal" } ], - "src": "4363:55:6" + "src": "4424:55:6" }, - "payable": false, "returnParameters": { - "id": 1480, + "id": 1610, "nodeType": "ParameterList", "parameters": [], - "src": "4457:0:6" + "src": "4518:0:6" }, - "scope": 1652, - "src": "4345:823:6", + "scope": 1796, + "src": "4406:859:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1579, + "id": 1717, "nodeType": "Block", - "src": "5440:358:6", + "src": "5537:358:6", "statements": [ { "expression": { @@ -4835,19 +5221,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1560, + "id": 1698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1558, + "id": 1696, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "5527:10:6", + "referencedDeclaration": 1690, + "src": "5624:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4857,18 +5243,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1559, + "id": 1697, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "5541:10:6", + "referencedDeclaration": 1358, + "src": "5638:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5527:24:6", + "src": "5624:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4877,14 +5263,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1561, + "id": 1699, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5553:37:6", + "src": "5650:37:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", @@ -4904,21 +5290,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 1557, + "id": 1695, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "5519:7:6", + "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": 1562, + "id": 1700, "isConstant": false, "isLValue": false, "isPure": false, @@ -4926,15 +5312,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5519:72:6", + "src": "5616:72:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1563, + "id": 1701, "nodeType": "ExpressionStatement", - "src": "5519:72:6" + "src": "5616:72:6" }, { "expression": { @@ -4946,19 +5332,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1567, + "id": 1705, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1565, + "id": 1703, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "5661:10:6", + "referencedDeclaration": 1690, + "src": "5758:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4969,14 +5355,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1566, + "id": 1704, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5675:1:6", + "src": "5772:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -4984,7 +5370,7 @@ }, "value": "1" }, - "src": "5661:15:6", + "src": "5758:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4993,14 +5379,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1568, + "id": 1706, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5678:38:6", + "src": "5775:38:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", @@ -5020,21 +5406,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 1564, + "id": 1702, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "5653:7:6", + "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": 1569, + "id": 1707, "isConstant": false, "isLValue": false, "isPure": false, @@ -5042,32 +5428,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5653:64:6", + "src": "5750:64:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1570, + "id": 1708, "nodeType": "ExpressionStatement", - "src": "5653:64:6" + "src": "5750:64:6" }, { "expression": { "argumentTypes": null, - "id": 1573, + "id": 1711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1571, + "id": 1709, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "5727:9:6", + "referencedDeclaration": 1360, + "src": "5824:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5077,26 +5463,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1572, + "id": 1710, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "5739:10:6", + "referencedDeclaration": 1690, + "src": "5836:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5727:22:6", + "src": "5824:22:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1574, + "id": 1712, "nodeType": "ExpressionStatement", - "src": "5727:22:6" + "src": "5824:22:6" }, { "eventCall": { @@ -5104,12 +5490,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1576, + "id": 1714, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "5781:9:6", + "referencedDeclaration": 1360, + "src": "5878:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5123,18 +5509,18 @@ "typeString": "uint256" } ], - "id": 1575, + "id": 1713, "name": "ChangedThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, - "src": "5764:16:6", + "referencedDeclaration": 1347, + "src": "5861:16:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1577, + "id": 1715, "isConstant": false, "isLValue": false, "isPure": false, @@ -5142,57 +5528,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5764:27:6", + "src": "5861:27:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1578, + "id": 1716, "nodeType": "EmitStatement", - "src": "5759:32:6" + "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": 1580, + "id": 1718, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1555, + "id": 1693, "modifierName": { "argumentTypes": null, - "id": 1554, + "id": 1692, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "5425:10:6", + "referencedDeclaration": 1880, + "src": "5522:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5425:10:6" + "src": "5522:10:6" } ], "name": "changeThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1553, + "id": 1691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1552, + "id": 1690, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1580, - "src": "5382:18:6", + "scope": 1718, + "src": "5479:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5200,10 +5585,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1551, + "id": 1689, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5382:7:6", + "src": "5479:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5213,74 +5598,71 @@ "visibility": "internal" } ], - "src": "5381:20:6" + "src": "5478:20:6" }, - "payable": false, "returnParameters": { - "id": 1556, + "id": 1694, "nodeType": "ParameterList", "parameters": [], - "src": "5440:0:6" + "src": "5537:0:6" }, - "scope": 1652, - "src": "5357:441:6", + "scope": 1796, + "src": "5454:441:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1587, + "id": 1725, "nodeType": "Block", - "src": "5886:33:6", + "src": "5983:33:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 1585, + "id": 1723, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "5903:9:6", + "referencedDeclaration": 1360, + "src": "6000:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1584, - "id": 1586, + "functionReturnParameters": 1722, + "id": 1724, "nodeType": "Return", - "src": "5896:16:6" + "src": "5993:16:6" } ] }, "documentation": null, - "id": 1588, + "id": 1726, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "getThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1581, + "id": 1719, "nodeType": "ParameterList", "parameters": [], - "src": "5825:2:6" + "src": "5922:2:6" }, - "payable": false, "returnParameters": { - "id": 1584, + "id": 1722, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1583, + "id": 1721, "name": "", "nodeType": "VariableDeclaration", - "scope": 1588, - "src": "5873:7:6", + "scope": 1726, + "src": "5970:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5288,10 +5670,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1582, + "id": 1720, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5873:7:6", + "src": "5970:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5301,124 +5683,225 @@ "visibility": "internal" } ], - "src": "5872:9:6" + "src": "5969:9:6" }, - "scope": 1652, - "src": "5804:115:6", + "scope": 1796, + "src": "5901:115:6", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1601, + "id": 1745, "nodeType": "Block", - "src": "6012:42:6", + "src": "6109:79:6", "statements": [ { "expression": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "id": 1599, + "id": 1743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1595, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "6029:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 1597, - "indexExpression": { + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 1596, + "id": 1733, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1590, - "src": "6036:5:6", + "referencedDeclaration": 1728, + "src": "6126:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6029:13:6", + "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_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": "&&", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1598, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1742, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "6046:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "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" + } }, - "value": "0" + "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": "6029:18:6", + "src": "6126:55:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1594, - "id": 1600, + "functionReturnParameters": 1732, + "id": 1744, "nodeType": "Return", - "src": "6022:25:6" + "src": "6119:62:6" } ] }, "documentation": null, - "id": 1602, + "id": 1746, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "isOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1591, + "id": 1729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1590, + "id": 1728, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1602, - "src": "5942:13:6", + "scope": 1746, + "src": "6039:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5426,10 +5909,11 @@ "typeString": "address" }, "typeName": { - "id": 1589, + "id": 1727, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5942:7:6", + "src": "6039:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5439,20 +5923,19 @@ "visibility": "internal" } ], - "src": "5941:15:6" + "src": "6038:15:6" }, - "payable": false, "returnParameters": { - "id": 1594, + "id": 1732, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1593, + "id": 1731, "name": "", "nodeType": "VariableDeclaration", - "scope": 1602, - "src": "6002:4:6", + "scope": 1746, + "src": "6099:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5460,10 +5943,10 @@ "typeString": "bool" }, "typeName": { - "id": 1592, + "id": 1730, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6002:4:6", + "src": "6099:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5473,32 +5956,32 @@ "visibility": "internal" } ], - "src": "6001:6:6" + "src": "6098:6:6" }, - "scope": 1652, - "src": "5925:129:6", + "scope": 1796, + "src": "6022:166:6", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1650, + "id": 1794, "nodeType": "Block", - "src": "6217:377:6", + "src": "6358:377:6", "statements": [ { "assignments": [ - 1611 + 1755 ], "declarations": [ { "constant": false, - "id": 1611, + "id": 1755, "name": "array", "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6227:22:6", + "scope": 1794, + "src": "6368:22:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5507,19 +5990,19 @@ }, "typeName": { "baseType": { - "id": 1609, + "id": 1753, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6227:7:6", + "src": "6368:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1610, + "id": 1754, "length": null, "nodeType": "ArrayTypeName", - "src": "6227:9:6", + "src": "6368:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -5529,18 +6012,18 @@ "visibility": "internal" } ], - "id": 1617, + "id": 1761, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1615, + "id": 1759, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "6266:10:6", + "referencedDeclaration": 1358, + "src": "6407:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5554,39 +6037,40 @@ "typeString": "uint256" } ], - "id": 1614, + "id": 1758, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6252:13:6", + "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": 1612, + "id": 1756, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6256:7:6", + "src": "6397:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1613, + "id": 1757, "length": null, "nodeType": "ArrayTypeName", - "src": "6256:9:6", + "src": "6397:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 1616, + "id": 1760, "isConstant": false, "isLValue": false, "isPure": false, @@ -5594,27 +6078,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6252:25:6", + "src": "6393:25:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "6227:50:6" + "src": "6368:50:6" }, { "assignments": [ - 1619 + 1763 ], "declarations": [ { "constant": false, - "id": 1619, + "id": 1763, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6321:13:6", + "scope": 1794, + "src": "6462:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5622,10 +6106,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1618, + "id": 1762, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6321:7:6", + "src": "6462:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5635,18 +6119,18 @@ "visibility": "internal" } ], - "id": 1621, + "id": 1765, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1620, + "id": 1764, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6337:1:6", + "src": "6478:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5655,20 +6139,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6321:17:6" + "src": "6462:17:6" }, { "assignments": [ - 1623 + 1767 ], "declarations": [ { "constant": false, - "id": 1623, + "id": 1767, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6348:20:6", + "scope": 1794, + "src": "6489:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5676,10 +6160,11 @@ "typeString": "address" }, "typeName": { - "id": 1622, + "id": 1766, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6348:7:6", + "src": "6489:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5689,31 +6174,31 @@ "visibility": "internal" } ], - "id": 1627, + "id": 1771, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1624, + "id": 1768, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "6371:6:6", + "referencedDeclaration": 1356, + "src": "6512:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1626, + "id": 1770, "indexExpression": { "argumentTypes": null, - "id": 1625, + "id": 1769, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "6378:15:6", + "referencedDeclaration": 1352, + "src": "6519:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5724,25 +6209,25 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6371:23:6", + "src": "6512:23:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "6348:46:6" + "src": "6489:46:6" }, { "body": { - "id": 1646, + "id": 1790, "nodeType": "Block", - "src": "6443:123:6", + "src": "6584:123:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 1635, + "id": 1779, "isConstant": false, "isLValue": false, "isPure": false, @@ -5751,26 +6236,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1631, + "id": 1775, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1611, - "src": "6457:5:6", + "referencedDeclaration": 1755, + "src": "6598:5:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1633, + "id": 1777, "indexExpression": { "argumentTypes": null, - "id": 1632, + "id": 1776, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1619, - "src": "6463:5:6", + "referencedDeclaration": 1763, + "src": "6604:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5781,7 +6266,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6457:12:6", + "src": "6598:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5791,43 +6276,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1634, + "id": 1778, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6472:12:6", + "referencedDeclaration": 1767, + "src": "6613:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6457:27:6", + "src": "6598:27:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1636, + "id": 1780, "nodeType": "ExpressionStatement", - "src": "6457:27:6" + "src": "6598:27:6" }, { "expression": { "argumentTypes": null, - "id": 1641, + "id": 1785, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1637, + "id": 1781, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6498:12:6", + "referencedDeclaration": 1767, + "src": "6639:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5839,26 +6324,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1638, + "id": 1782, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "6513:6:6", + "referencedDeclaration": 1356, + "src": "6654:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1640, + "id": 1784, "indexExpression": { "argumentTypes": null, - "id": 1639, + "id": 1783, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6520:12:6", + "referencedDeclaration": 1767, + "src": "6661:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5869,26 +6354,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6513:20:6", + "src": "6654:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6498:35:6", + "src": "6639:35:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1642, + "id": 1786, "nodeType": "ExpressionStatement", - "src": "6498:35:6" + "src": "6639:35:6" }, { "expression": { "argumentTypes": null, - "id": 1644, + "id": 1788, "isConstant": false, "isLValue": false, "isPure": false, @@ -5896,15 +6381,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6547:8:6", + "src": "6688:8:6", "subExpression": { "argumentTypes": null, - "id": 1643, + "id": 1787, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1619, - "src": "6547:5:6", + "referencedDeclaration": 1763, + "src": "6688:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5915,9 +6400,9 @@ "typeString": "uint256" } }, - "id": 1645, + "id": 1789, "nodeType": "ExpressionStatement", - "src": "6547:8:6" + "src": "6688:8:6" } ] }, @@ -5927,19 +6412,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1630, + "id": 1774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1628, + "id": 1772, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6410:12:6", + "referencedDeclaration": 1767, + "src": "6551:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5949,95 +6434,94 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1629, + "id": 1773, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "6426:15:6", + "referencedDeclaration": 1352, + "src": "6567:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6410:31:6", + "src": "6551:31:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1647, + "id": 1791, "nodeType": "WhileStatement", - "src": "6404:162:6" + "src": "6545:162:6" }, { "expression": { "argumentTypes": null, - "id": 1648, + "id": 1792, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1611, - "src": "6582:5:6", + "referencedDeclaration": 1755, + "src": "6723:5:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 1607, - "id": 1649, + "functionReturnParameters": 1751, + "id": 1793, "nodeType": "Return", - "src": "6575:12:6" + "src": "6716:12:6" } ] }, "documentation": "@dev Returns array of owners.\n @return Array of Safe owners.", - "id": 1651, + "id": 1795, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "getOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 1603, + "id": 1747, "nodeType": "ParameterList", "parameters": [], - "src": "6154:2:6" + "src": "6288:2:6" }, - "payable": false, "returnParameters": { - "id": 1607, + "id": 1751, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1606, + "id": 1750, "name": "", "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6202:9:6", + "scope": 1795, + "src": "6336:16:6", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 1604, + "id": 1748, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6202:7:6", + "src": "6336:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1605, + "id": 1749, "length": null, "nodeType": "ArrayTypeName", - "src": "6202:9:6", + "src": "6336:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -6047,48 +6531,49 @@ "visibility": "internal" } ], - "src": "6201:11:6" + "src": "6335:18:6" }, - "scope": 1652, - "src": "6136:458:6", + "scope": 1796, + "src": "6270:465:6", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1653, - "src": "248:6348:6" + "scope": 1797, + "src": "248:6489:6" } ], - "src": "0:6597:6" + "src": "0:6738:6" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", "exportedSymbols": { "OwnerManager": [ - 1652 + 1796 ] }, - "id": 1653, + "id": 1797, "nodeType": "SourceUnit", "nodes": [ { - "id": 1214, + "id": 1332, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:6" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", "file": "../common/SelfAuthorized.sol", - "id": 1215, + "id": 1333, "nodeType": "ImportDirective", - "scope": 1653, - "sourceUnit": 1736, + "scope": 1797, + "sourceUnit": 1882, "src": "24:38:6", "symbolAliases": [], "unitAlias": "" @@ -6099,31 +6584,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1216, + "id": 1334, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1735, + "referencedDeclaration": 1881, "src": "273:14:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", + "typeIdentifier": "t_contract$_SelfAuthorized_$1881", "typeString": "contract SelfAuthorized" } }, - "id": 1217, + "id": 1335, "nodeType": "InheritanceSpecifier", "src": "273:14:6" } ], "contractDependencies": [ - 1735 + 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": 1652, + "id": 1796, "linearizedBaseContracts": [ - 1652, - 1735 + 1796, + 1881 ], "name": "OwnerManager", "nodeType": "ContractDefinition", @@ -6131,20 +6616,20 @@ { "anonymous": false, "documentation": null, - "id": 1221, + "id": 1339, "name": "AddedOwner", "nodeType": "EventDefinition", "parameters": { - "id": 1220, + "id": 1338, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1219, + "id": 1337, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1221, + "scope": 1339, "src": "312:13:6", "stateVariable": false, "storageLocation": "default", @@ -6153,10 +6638,11 @@ "typeString": "address" }, "typeName": { - "id": 1218, + "id": 1336, "name": "address", "nodeType": "ElementaryTypeName", "src": "312:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6173,20 +6659,20 @@ { "anonymous": false, "documentation": null, - "id": 1225, + "id": 1343, "name": "RemovedOwner", "nodeType": "EventDefinition", "parameters": { - "id": 1224, + "id": 1342, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1223, + "id": 1341, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1225, + "scope": 1343, "src": "351:13:6", "stateVariable": false, "storageLocation": "default", @@ -6195,10 +6681,11 @@ "typeString": "address" }, "typeName": { - "id": 1222, + "id": 1340, "name": "address", "nodeType": "ElementaryTypeName", "src": "351:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6215,20 +6702,20 @@ { "anonymous": false, "documentation": null, - "id": 1229, + "id": 1347, "name": "ChangedThreshold", "nodeType": "EventDefinition", "parameters": { - "id": 1228, + "id": 1346, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1227, + "id": 1345, "indexed": false, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 1229, + "scope": 1347, "src": "394:17:6", "stateVariable": false, "storageLocation": "default", @@ -6237,7 +6724,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1226, + "id": 1344, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "394:7:6", @@ -6256,10 +6743,10 @@ }, { "constant": true, - "id": 1234, + "id": 1352, "name": "SENTINEL_OWNERS", "nodeType": "VariableDeclaration", - "scope": 1652, + "scope": 1796, "src": "419:54:6", "stateVariable": true, "storageLocation": "default", @@ -6268,10 +6755,11 @@ "typeString": "address" }, "typeName": { - "id": 1230, + "id": 1348, "name": "address", "nodeType": "ElementaryTypeName", "src": "419:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6283,7 +6771,7 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 1232, + "id": 1350, "isConstant": false, "isLValue": false, "isPure": true, @@ -6306,7 +6794,7 @@ "typeString": "int_const 1" } ], - "id": 1231, + "id": 1349, "isConstant": false, "isLValue": false, "isPure": true, @@ -6319,7 +6807,7 @@ }, "typeName": "address" }, - "id": 1233, + "id": 1351, "isConstant": false, "isLValue": false, "isPure": true, @@ -6329,18 +6817,18 @@ "nodeType": "FunctionCall", "src": "461:12:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "visibility": "public" }, { "constant": false, - "id": 1238, + "id": 1356, "name": "owners", "nodeType": "VariableDeclaration", - "scope": 1652, + "scope": 1796, "src": "480:43:6", "stateVariable": true, "storageLocation": "default", @@ -6349,9 +6837,9 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 1237, + "id": 1355, "keyType": { - "id": 1235, + "id": 1353, "name": "address", "nodeType": "ElementaryTypeName", "src": "488:7:6", @@ -6367,10 +6855,11 @@ "typeString": "mapping(address => address)" }, "valueType": { - "id": 1236, + "id": 1354, "name": "address", "nodeType": "ElementaryTypeName", "src": "499:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6382,10 +6871,10 @@ }, { "constant": false, - "id": 1240, + "id": 1358, "name": "ownerCount", "nodeType": "VariableDeclaration", - "scope": 1652, + "scope": 1796, "src": "529:18:6", "stateVariable": true, "storageLocation": "default", @@ -6394,7 +6883,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1239, + "id": 1357, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "529:7:6", @@ -6408,10 +6897,10 @@ }, { "constant": false, - "id": 1242, + "id": 1360, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 1652, + "scope": 1796, "src": "553:26:6", "stateVariable": true, "storageLocation": "default", @@ -6420,7 +6909,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1241, + "id": 1359, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "553:7:6", @@ -6434,9 +6923,9 @@ }, { "body": { - "id": 1340, + "id": 1462, "nodeType": "Block", - "src": "856:1129:6", + "src": "863:1147:6", "statements": [ { "expression": { @@ -6448,19 +6937,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1253, + "id": 1371, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1251, + "id": 1369, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "998:9:6", + "referencedDeclaration": 1360, + "src": "1005:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6471,14 +6960,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1252, + "id": 1370, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1011:1:6", + "src": "1018:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6486,7 +6975,7 @@ }, "value": "0" }, - "src": "998:14:6", + "src": "1005:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6495,14 +6984,14 @@ { "argumentTypes": null, "hexValue": "4f776e657273206861766520616c7265616479206265656e207365747570", - "id": 1254, + "id": 1372, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1014:32:6", + "src": "1021:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9a45ae898fbe2bd07a0b33b5a6c421f76198e9deb66843b8d827b0b9e4a16f86", @@ -6522,21 +7011,21 @@ "typeString": "literal_string \"Owners have already been setup\"" } ], - "id": 1250, + "id": 1368, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "990:7:6", + "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": 1255, + "id": 1373, "isConstant": false, "isLValue": false, "isPure": false, @@ -6544,15 +7033,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "990:57:6", + "src": "997:57:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1256, + "id": 1374, "nodeType": "ExpressionStatement", - "src": "990:57:6" + "src": "997:57:6" }, { "expression": { @@ -6564,19 +7053,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1261, + "id": 1379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1258, + "id": 1376, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "1140:10:6", + "referencedDeclaration": 1365, + "src": "1147:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6588,18 +7077,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1259, + "id": 1377, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1154:7:6", + "referencedDeclaration": 1363, + "src": "1161:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1260, + "id": 1378, "isConstant": false, "isLValue": false, "isPure": false, @@ -6607,13 +7096,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1154:14:6", + "src": "1161:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1140:28:6", + "src": "1147:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6622,14 +7111,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1262, + "id": 1380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1170:37:6", + "src": "1177:37:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", @@ -6649,21 +7138,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 1257, + "id": 1375, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1132:7:6", + "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": 1263, + "id": 1381, "isConstant": false, "isLValue": false, "isPure": false, @@ -6671,15 +7160,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1132:76:6", + "src": "1139:76:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1264, + "id": 1382, "nodeType": "ExpressionStatement", - "src": "1132:76:6" + "src": "1139:76:6" }, { "expression": { @@ -6691,19 +7180,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1268, + "id": 1386, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1266, + "id": 1384, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "1278:10:6", + "referencedDeclaration": 1365, + "src": "1285:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6714,14 +7203,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1267, + "id": 1385, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1292:1:6", + "src": "1299:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6729,7 +7218,7 @@ }, "value": "1" }, - "src": "1278:15:6", + "src": "1285:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6738,14 +7227,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1269, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1295:38:6", + "src": "1302:38:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", @@ -6765,21 +7254,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 1265, + "id": 1383, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1270:7:6", + "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": 1270, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": false, @@ -6787,28 +7276,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1270:64:6", + "src": "1277:64:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1271, + "id": 1389, "nodeType": "ExpressionStatement", - "src": "1270:64:6" + "src": "1277:64:6" }, { "assignments": [ - 1273 + 1391 ], "declarations": [ { "constant": false, - "id": 1273, + "id": 1391, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "1381:20:6", + "scope": 1462, + "src": "1388:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6816,10 +7305,11 @@ "typeString": "address" }, "typeName": { - "id": 1272, + "id": 1390, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1381:7:6", + "src": "1388:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6829,41 +7319,41 @@ "visibility": "internal" } ], - "id": 1275, + "id": 1393, "initialValue": { "argumentTypes": null, - "id": 1274, + "id": 1392, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "1404:15:6", + "referencedDeclaration": 1352, + "src": "1411:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1381:38:6" + "src": "1388:38:6" }, { "body": { - "id": 1323, + "id": 1445, "nodeType": "Block", - "src": "1474:388:6", + "src": "1481:406:6", "statements": [ { "assignments": [ - 1288 + 1406 ], "declarations": [ { "constant": false, - "id": 1288, + "id": 1406, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "1533:13:6", + "scope": 1445, + "src": "1540:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6871,10 +7361,11 @@ "typeString": "address" }, "typeName": { - "id": 1287, + "id": 1405, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1533:7:6", + "src": "1540:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6884,31 +7375,31 @@ "visibility": "internal" } ], - "id": 1292, + "id": 1410, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1289, + "id": 1407, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1549:7:6", + "referencedDeclaration": 1363, + "src": "1556:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1291, + "id": 1409, "indexExpression": { "argumentTypes": null, - "id": 1290, + "id": 1408, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1277, - "src": "1557:1:6", + "referencedDeclaration": 1395, + "src": "1564:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6919,14 +7410,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1549:10:6", + "src": "1556:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1533:26:6" + "src": "1540:26:6" }, { "expression": { @@ -6938,7 +7429,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1300, + "id": 1420, "isConstant": false, "isLValue": false, "isPure": false, @@ -6949,19 +7440,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1296, + "id": 1416, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1294, + "id": 1412, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1581:5:6", + "referencedDeclaration": 1406, + "src": "1588:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6971,23 +7462,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1295, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "1590:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "1597:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "1581:10:6", + "src": "1588:19:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7001,19 +7530,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1299, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1297, + "id": 1417, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1595:5:6", + "referencedDeclaration": 1406, + "src": "1611:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7023,24 +7552,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1298, + "id": 1418, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "1604:15:6", + "referencedDeclaration": 1352, + "src": "1620:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1595:24:6", + "src": "1611:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1581:38:6", + "src": "1588:47:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7049,14 +7578,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1301, + "id": 1421, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1621:32:6", + "src": "1637:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -7076,21 +7605,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1293, + "id": 1411, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1573:7:6", + "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": 1302, + "id": 1422, "isConstant": false, "isLValue": false, "isPure": false, @@ -7098,15 +7627,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1573:81:6", + "src": "1580:90:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1303, + "id": 1423, "nodeType": "ExpressionStatement", - "src": "1573:81:6" + "src": "1580:90:6" }, { "expression": { @@ -7118,7 +7647,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1309, + "id": 1431, "isConstant": false, "isLValue": false, "isPure": false, @@ -7127,26 +7656,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1305, + "id": 1425, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "1720:6:6", + "referencedDeclaration": 1356, + "src": "1736:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1307, + "id": 1427, "indexExpression": { "argumentTypes": null, - "id": 1306, + "id": 1426, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1727:5:6", + "referencedDeclaration": 1406, + "src": "1743:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7157,7 +7686,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1720:13:6", + "src": "1736:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7167,23 +7696,61 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1308, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "1737:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "1753:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "1720:18:6", + "src": "1736:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7192,14 +7759,14 @@ { "argumentTypes": null, "hexValue": "4475706c6963617465206f776e657220616464726573732070726f7669646564", - "id": 1310, + "id": 1432, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1740:34:6", + "src": "1765:34:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a803fa289679098e38a7f1f6fe43056918c5ab5af07441cb8db77b949c165ca1", @@ -7219,21 +7786,21 @@ "typeString": "literal_string \"Duplicate owner address provided\"" } ], - "id": 1304, + "id": 1424, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1712:7:6", + "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": 1311, + "id": 1433, "isConstant": false, "isLValue": false, "isPure": false, @@ -7241,20 +7808,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1712:63:6", + "src": "1728:72:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1312, + "id": 1434, "nodeType": "ExpressionStatement", - "src": "1712:63:6" + "src": "1728:72:6" }, { "expression": { "argumentTypes": null, - "id": 1317, + "id": 1439, "isConstant": false, "isLValue": false, "isPure": false, @@ -7263,26 +7830,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1313, + "id": 1435, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "1789:6:6", + "referencedDeclaration": 1356, + "src": "1814:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1315, + "id": 1437, "indexExpression": { "argumentTypes": null, - "id": 1314, + "id": 1436, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1273, - "src": "1796:12:6", + "referencedDeclaration": 1391, + "src": "1821:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7293,7 +7860,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1789:20:6", + "src": "1814:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7303,43 +7870,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1316, + "id": 1438, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1812:5:6", + "referencedDeclaration": 1406, + "src": "1837:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1789:28:6", + "src": "1814:28:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1318, + "id": 1440, "nodeType": "ExpressionStatement", - "src": "1789:28:6" + "src": "1814:28:6" }, { "expression": { "argumentTypes": null, - "id": 1321, + "id": 1443, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1319, + "id": 1441, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1273, - "src": "1831:12:6", + "referencedDeclaration": 1391, + "src": "1856:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7349,26 +7916,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1320, + "id": 1442, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1846:5:6", + "referencedDeclaration": 1406, + "src": "1871:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1831:20:6", + "src": "1856:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1322, + "id": 1444, "nodeType": "ExpressionStatement", - "src": "1831:20:6" + "src": "1856:20:6" } ] }, @@ -7378,19 +7945,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1283, + "id": 1401, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1280, + "id": 1398, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1277, - "src": "1449:1:6", + "referencedDeclaration": 1395, + "src": "1456:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7402,18 +7969,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1281, + "id": 1399, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1453:7:6", + "referencedDeclaration": 1363, + "src": "1460:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1282, + "id": 1400, "isConstant": false, "isLValue": false, "isPure": false, @@ -7421,31 +7988,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1453:14:6", + "src": "1460:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1449:18:6", + "src": "1456:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1324, + "id": 1446, "initializationExpression": { "assignments": [ - 1277 + 1395 ], "declarations": [ { "constant": false, - "id": 1277, + "id": 1395, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "1434:9:6", + "scope": 1446, + "src": "1441:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7453,10 +8020,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1276, + "id": 1394, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1434:7:6", + "src": "1441:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7466,18 +8033,18 @@ "visibility": "internal" } ], - "id": 1279, + "id": 1397, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1278, + "id": 1396, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1446:1:6", + "src": "1453:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7486,12 +8053,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1434:13:6" + "src": "1441:13:6" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1285, + "id": 1403, "isConstant": false, "isLValue": false, "isPure": false, @@ -7499,15 +8066,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1469:3:6", + "src": "1476:3:6", "subExpression": { "argumentTypes": null, - "id": 1284, + "id": 1402, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1277, - "src": "1469:1:6", + "referencedDeclaration": 1395, + "src": "1476:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7518,17 +8085,17 @@ "typeString": "uint256" } }, - "id": 1286, + "id": 1404, "nodeType": "ExpressionStatement", - "src": "1469:3:6" + "src": "1476:3:6" }, "nodeType": "ForStatement", - "src": "1429:433:6" + "src": "1436:451:6" }, { "expression": { "argumentTypes": null, - "id": 1329, + "id": 1451, "isConstant": false, "isLValue": false, "isPure": false, @@ -7537,26 +8104,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1325, + "id": 1447, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "1871:6:6", + "referencedDeclaration": 1356, + "src": "1896:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1327, + "id": 1449, "indexExpression": { "argumentTypes": null, - "id": 1326, + "id": 1448, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1273, - "src": "1878:12:6", + "referencedDeclaration": 1391, + "src": "1903:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7567,7 +8134,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1871:20:6", + "src": "1896:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7577,43 +8144,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1328, + "id": 1450, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "1894:15:6", + "referencedDeclaration": 1352, + "src": "1919:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1871:38:6", + "src": "1896:38:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1330, + "id": 1452, "nodeType": "ExpressionStatement", - "src": "1871:38:6" + "src": "1896:38:6" }, { "expression": { "argumentTypes": null, - "id": 1334, + "id": 1456, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1331, + "id": 1453, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "1919:10:6", + "referencedDeclaration": 1358, + "src": "1944:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7625,18 +8192,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1332, + "id": 1454, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1932:7:6", + "referencedDeclaration": 1363, + "src": "1957:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1333, + "id": 1455, "isConstant": false, "isLValue": false, "isPure": false, @@ -7644,38 +8211,38 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1932:14:6", + "src": "1957:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1919:27:6", + "src": "1944:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1335, + "id": 1457, "nodeType": "ExpressionStatement", - "src": "1919:27:6" + "src": "1944:27:6" }, { "expression": { "argumentTypes": null, - "id": 1338, + "id": 1460, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1336, + "id": 1458, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "1956:9:6", + "referencedDeclaration": 1360, + "src": "1981:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7685,66 +8252,66 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1337, + "id": 1459, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "1968:10:6", + "referencedDeclaration": 1365, + "src": "1993:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1956:22:6", + "src": "1981:22:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1339, + "id": 1461, "nodeType": "ExpressionStatement", - "src": "1956:22:6" + "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": 1341, + "id": 1463, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setupOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 1248, + "id": 1366, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1245, + "id": 1363, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "796:17:6", + "scope": 1463, + "src": "796:24:6", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 1243, + "id": 1361, "name": "address", "nodeType": "ElementaryTypeName", "src": "796:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1244, + "id": 1362, "length": null, "nodeType": "ArrayTypeName", "src": "796:9:6", @@ -7758,11 +8325,11 @@ }, { "constant": false, - "id": 1247, + "id": 1365, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "815:18:6", + "scope": 1463, + "src": "822:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7770,10 +8337,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1246, + "id": 1364, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "815:7:6", + "src": "822:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7783,26 +8350,25 @@ "visibility": "internal" } ], - "src": "795:39:6" + "src": "795:46:6" }, - "payable": false, "returnParameters": { - "id": 1249, + "id": 1367, "nodeType": "ParameterList", "parameters": [], - "src": "856:0:6" + "src": "863:0:6" }, - "scope": 1652, - "src": "775:1210:6", + "scope": 1796, + "src": "775:1235:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1399, + "id": 1525, "nodeType": "Block", - "src": "2329:523:6", + "src": "2354:541:6", "statements": [ { "expression": { @@ -7814,7 +8380,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1357, + "id": 1481, "isConstant": false, "isLValue": false, "isPure": false, @@ -7825,19 +8391,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1353, + "id": 1477, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1351, + "id": 1473, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2388:5:6", + "referencedDeclaration": 1465, + "src": "2413:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7847,23 +8413,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1352, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "2397:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2422:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "2388:10:6", + "src": "2413:19:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7877,19 +8481,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1356, + "id": 1480, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1354, + "id": 1478, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2402:5:6", + "referencedDeclaration": 1465, + "src": "2436:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7899,24 +8503,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1355, + "id": 1479, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "2411:15:6", + "referencedDeclaration": 1352, + "src": "2445:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2402:24:6", + "src": "2436:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2388:38:6", + "src": "2413:47:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7925,14 +8529,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1358, + "id": 1482, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2428:32:6", + "src": "2462:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -7952,21 +8556,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1350, + "id": 1472, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2380:7:6", + "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": 1359, + "id": 1483, "isConstant": false, "isLValue": false, "isPure": false, @@ -7974,15 +8578,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2380:81:6", + "src": "2405:90:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1360, + "id": 1484, "nodeType": "ExpressionStatement", - "src": "2380:81:6" + "src": "2405:90:6" }, { "expression": { @@ -7994,7 +8598,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1366, + "id": 1492, "isConstant": false, "isLValue": false, "isPure": false, @@ -8003,26 +8607,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1362, + "id": 1486, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2519:6:6", + "referencedDeclaration": 1356, + "src": "2553:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1364, + "id": 1488, "indexExpression": { "argumentTypes": null, - "id": 1363, + "id": 1487, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2526:5:6", + "referencedDeclaration": 1465, + "src": "2560:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8033,7 +8637,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2519:13:6", + "src": "2553:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8043,23 +8647,61 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1365, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "2536:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2570:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "2519:18:6", + "src": "2553:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8068,14 +8710,14 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1367, + "id": 1493, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2539:29:6", + "src": "2582:29:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", @@ -8095,21 +8737,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 1361, + "id": 1485, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2511:7:6", + "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": 1368, + "id": 1494, "isConstant": false, "isLValue": false, "isPure": false, @@ -8117,20 +8759,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2511:58:6", + "src": "2545:67:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1369, + "id": 1495, "nodeType": "ExpressionStatement", - "src": "2511:58:6" + "src": "2545:67:6" }, { "expression": { "argumentTypes": null, - "id": 1376, + "id": 1502, "isConstant": false, "isLValue": false, "isPure": false, @@ -8139,26 +8781,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1370, + "id": 1496, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2579:6:6", + "referencedDeclaration": 1356, + "src": "2622:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1372, + "id": 1498, "indexExpression": { "argumentTypes": null, - "id": 1371, + "id": 1497, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2586:5:6", + "referencedDeclaration": 1465, + "src": "2629:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8169,7 +8811,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2579:13:6", + "src": "2622:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8181,26 +8823,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1373, + "id": 1499, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2595:6:6", + "referencedDeclaration": 1356, + "src": "2638:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1375, + "id": 1501, "indexExpression": { "argumentTypes": null, - "id": 1374, + "id": 1500, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "2602:15:6", + "referencedDeclaration": 1352, + "src": "2645:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8211,26 +8853,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2595:23:6", + "src": "2638:23:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2579:39:6", + "src": "2622:39:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1377, + "id": 1503, "nodeType": "ExpressionStatement", - "src": "2579:39:6" + "src": "2622:39:6" }, { "expression": { "argumentTypes": null, - "id": 1382, + "id": 1508, "isConstant": false, "isLValue": false, "isPure": false, @@ -8239,26 +8881,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1378, + "id": 1504, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2628:6:6", + "referencedDeclaration": 1356, + "src": "2671:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1380, + "id": 1506, "indexExpression": { "argumentTypes": null, - "id": 1379, + "id": 1505, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "2635:15:6", + "referencedDeclaration": 1352, + "src": "2678:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8269,7 +8911,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2628:23:6", + "src": "2671:23:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8279,31 +8921,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1381, + "id": 1507, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2654:5:6", + "referencedDeclaration": 1465, + "src": "2697:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2628:31:6", + "src": "2671:31:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1383, + "id": 1509, "nodeType": "ExpressionStatement", - "src": "2628:31:6" + "src": "2671:31:6" }, { "expression": { "argumentTypes": null, - "id": 1385, + "id": 1511, "isConstant": false, "isLValue": false, "isPure": false, @@ -8311,15 +8953,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2669:12:6", + "src": "2712:12:6", "subExpression": { "argumentTypes": null, - "id": 1384, + "id": 1510, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "2669:10:6", + "referencedDeclaration": 1358, + "src": "2712:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8330,9 +8972,9 @@ "typeString": "uint256" } }, - "id": 1386, + "id": 1512, "nodeType": "ExpressionStatement", - "src": "2669:12:6" + "src": "2712:12:6" }, { "eventCall": { @@ -8340,12 +8982,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1388, + "id": 1514, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2707:5:6", + "referencedDeclaration": 1465, + "src": "2750:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8359,18 +9001,18 @@ "typeString": "address" } ], - "id": 1387, + "id": 1513, "name": "AddedOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "2696:10:6", + "referencedDeclaration": 1339, + "src": "2739:10:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1389, + "id": 1515, "isConstant": false, "isLValue": false, "isPure": false, @@ -8378,15 +9020,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2696:17:6", + "src": "2739:17:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1390, + "id": 1516, "nodeType": "EmitStatement", - "src": "2691:22:6" + "src": "2734:22:6" }, { "condition": { @@ -8395,19 +9037,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1393, + "id": 1519, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1391, + "id": 1517, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "2781:9:6", + "referencedDeclaration": 1360, + "src": "2824:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8417,39 +9059,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1392, + "id": 1518, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "2794:10:6", + "referencedDeclaration": 1467, + "src": "2837:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2781:23:6", + "src": "2824:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1398, + "id": 1524, "nodeType": "IfStatement", - "src": "2777:68:6", + "src": "2820:68:6", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1395, + "id": 1521, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "2834:10:6", + "referencedDeclaration": 1467, + "src": "2877:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8463,18 +9105,18 @@ "typeString": "uint256" } ], - "id": 1394, + "id": 1520, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1580, - "src": "2818:15:6", + "referencedDeclaration": 1718, + "src": "2861:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1396, + "id": 1522, "isConstant": false, "isLValue": false, "isPure": false, @@ -8482,58 +9124,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2818:27:6", + "src": "2861:27:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1397, + "id": 1523, "nodeType": "ExpressionStatement", - "src": "2818:27:6" + "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": 1400, + "id": 1526, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1348, + "id": 1470, "modifierName": { "argumentTypes": null, - "id": 1347, + "id": 1469, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "2314:10:6", + "referencedDeclaration": 1880, + "src": "2339:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2314:10:6" + "src": "2339:10:6" } ], "name": "addOwnerWithThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1346, + "id": 1468, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1343, + "id": 1465, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1400, - "src": "2256:13:6", + "scope": 1526, + "src": "2281:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8541,10 +9182,11 @@ "typeString": "address" }, "typeName": { - "id": 1342, + "id": 1464, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2256:7:6", + "src": "2281:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8555,11 +9197,11 @@ }, { "constant": false, - "id": 1345, + "id": 1467, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1400, - "src": "2271:18:6", + "scope": 1526, + "src": "2296:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8567,10 +9209,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1344, + "id": 1466, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2271:7:6", + "src": "2296:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8580,26 +9222,25 @@ "visibility": "internal" } ], - "src": "2255:35:6" + "src": "2280:35:6" }, - "payable": false, "returnParameters": { - "id": 1349, + "id": 1471, "nodeType": "ParameterList", "parameters": [], - "src": "2329:0:6" + "src": "2354:0:6" }, - "scope": 1652, - "src": "2225:627:6", + "scope": 1796, + "src": "2250:645:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1469, + "id": 1599, "nodeType": "Block", - "src": "3307:704:6", + "src": "3350:722:6", "statements": [ { "expression": { @@ -8611,7 +9252,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1416, + "id": 1542, "isConstant": false, "isLValue": false, "isPure": false, @@ -8622,19 +9263,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1414, + "id": 1540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1412, + "id": 1538, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "3402:10:6", + "referencedDeclaration": 1358, + "src": "3445:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8645,14 +9286,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1413, + "id": 1539, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3415:1:6", + "src": "3458:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8660,7 +9301,7 @@ }, "value": "1" }, - "src": "3402:14:6", + "src": "3445:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8670,18 +9311,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 1415, + "id": 1541, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "3420:10:6", + "referencedDeclaration": 1532, + "src": "3463:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3402:28:6", + "src": "3445:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8690,14 +9331,14 @@ { "argumentTypes": null, "hexValue": "4e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64", - "id": 1417, + "id": 1543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3432:55:6", + "src": "3475:55:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_839b4c4db845de24ec74ef067d85431087d6987a4c904418ee4f6ec699c02482", @@ -8717,21 +9358,21 @@ "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" } ], - "id": 1411, + "id": 1537, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "3394:7:6", + "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": 1418, + "id": 1544, "isConstant": false, "isLValue": false, "isPure": false, @@ -8739,15 +9380,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3394:94:6", + "src": "3437:94:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1419, + "id": 1545, "nodeType": "ExpressionStatement", - "src": "3394:94:6" + "src": "3437:94:6" }, { "expression": { @@ -8759,7 +9400,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1427, + "id": 1555, "isConstant": false, "isLValue": false, "isPure": false, @@ -8770,19 +9411,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1423, + "id": 1551, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1421, + "id": 1547, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3586:5:6", + "referencedDeclaration": 1530, + "src": "3629:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8792,23 +9433,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1422, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "3595:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "3638:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "3586:10:6", + "src": "3629:19:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8822,19 +9501,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1426, + "id": 1554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1424, + "id": 1552, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3600:5:6", + "referencedDeclaration": 1530, + "src": "3652:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8844,24 +9523,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1425, + "id": 1553, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "3609:15:6", + "referencedDeclaration": 1352, + "src": "3661:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3600:24:6", + "src": "3652:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3586:38:6", + "src": "3629:47:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8870,14 +9549,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1428, + "id": 1556, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3626:32:6", + "src": "3678:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -8897,21 +9576,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1420, + "id": 1546, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "3578:7:6", + "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": 1429, + "id": 1557, "isConstant": false, "isLValue": false, "isPure": false, @@ -8919,15 +9598,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3578:81:6", + "src": "3621:90:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1430, + "id": 1558, "nodeType": "ExpressionStatement", - "src": "3578:81:6" + "src": "3621:90:6" }, { "expression": { @@ -8939,7 +9618,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1436, + "id": 1564, "isConstant": false, "isLValue": false, "isPure": false, @@ -8948,26 +9627,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1432, + "id": 1560, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3677:6:6", + "referencedDeclaration": 1356, + "src": "3729:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1434, + "id": 1562, "indexExpression": { "argumentTypes": null, - "id": 1433, + "id": 1561, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "3684:9:6", + "referencedDeclaration": 1528, + "src": "3736:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8978,7 +9657,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3677:17:6", + "src": "3729:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8988,18 +9667,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1435, + "id": 1563, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3698:5:6", + "referencedDeclaration": 1530, + "src": "3750:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3677:26:6", + "src": "3729:26:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9008,14 +9687,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1437, + "id": 1565, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3705:40:6", + "src": "3757:40:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", @@ -9035,21 +9714,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 1431, + "id": 1559, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "3669:7:6", + "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": 1438, + "id": 1566, "isConstant": false, "isLValue": false, "isPure": false, @@ -9057,20 +9736,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3669:77:6", + "src": "3721:77:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1439, + "id": 1567, "nodeType": "ExpressionStatement", - "src": "3669:77:6" + "src": "3721:77:6" }, { "expression": { "argumentTypes": null, - "id": 1446, + "id": 1574, "isConstant": false, "isLValue": false, "isPure": false, @@ -9079,26 +9758,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1440, + "id": 1568, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3756:6:6", + "referencedDeclaration": 1356, + "src": "3808:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1442, + "id": 1570, "indexExpression": { "argumentTypes": null, - "id": 1441, + "id": 1569, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "3763:9:6", + "referencedDeclaration": 1528, + "src": "3815:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9109,7 +9788,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3756:17:6", + "src": "3808:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9121,26 +9800,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1443, + "id": 1571, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3776:6:6", + "referencedDeclaration": 1356, + "src": "3828:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1445, + "id": 1573, "indexExpression": { "argumentTypes": null, - "id": 1444, + "id": 1572, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3783:5:6", + "referencedDeclaration": 1530, + "src": "3835:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9151,26 +9830,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3776:13:6", + "src": "3828:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3756:33:6", + "src": "3808:33:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1447, + "id": 1575, "nodeType": "ExpressionStatement", - "src": "3756:33:6" + "src": "3808:33:6" }, { "expression": { "argumentTypes": null, - "id": 1452, + "id": 1582, "isConstant": false, "isLValue": false, "isPure": false, @@ -9179,26 +9858,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1448, + "id": 1576, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3799:6:6", + "referencedDeclaration": 1356, + "src": "3851:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1450, + "id": 1578, "indexExpression": { "argumentTypes": null, - "id": 1449, + "id": 1577, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3806:5:6", + "referencedDeclaration": 1530, + "src": "3858:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9209,7 +9888,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3799:13:6", + "src": "3851:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9219,36 +9898,74 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "hexValue": "30", - "id": 1451, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "3815:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "3867:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "3799:17:6", + "src": "3851:26:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1453, + "id": 1583, "nodeType": "ExpressionStatement", - "src": "3799:17:6" + "src": "3851:26:6" }, { "expression": { "argumentTypes": null, - "id": 1455, + "id": 1585, "isConstant": false, "isLValue": false, "isPure": false, @@ -9256,15 +9973,15 @@ "nodeType": "UnaryOperation", "operator": "--", "prefix": false, - "src": "3826:12:6", + "src": "3887:12:6", "subExpression": { "argumentTypes": null, - "id": 1454, + "id": 1584, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "3826:10:6", + "referencedDeclaration": 1358, + "src": "3887:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9275,9 +9992,9 @@ "typeString": "uint256" } }, - "id": 1456, + "id": 1586, "nodeType": "ExpressionStatement", - "src": "3826:12:6" + "src": "3887:12:6" }, { "eventCall": { @@ -9285,12 +10002,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1458, + "id": 1588, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3866:5:6", + "referencedDeclaration": 1530, + "src": "3927:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9304,18 +10021,18 @@ "typeString": "address" } ], - "id": 1457, + "id": 1587, "name": "RemovedOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1225, - "src": "3853:12:6", + "referencedDeclaration": 1343, + "src": "3914:12:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1459, + "id": 1589, "isConstant": false, "isLValue": false, "isPure": false, @@ -9323,15 +10040,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3853:19:6", + "src": "3914:19:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1460, + "id": 1590, "nodeType": "EmitStatement", - "src": "3848:24:6" + "src": "3909:24:6" }, { "condition": { @@ -9340,19 +10057,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1463, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1461, + "id": 1591, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "3940:9:6", + "referencedDeclaration": 1360, + "src": "4001:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9362,39 +10079,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1462, + "id": 1592, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "3953:10:6", + "referencedDeclaration": 1532, + "src": "4014:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3940:23:6", + "src": "4001:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1468, + "id": 1598, "nodeType": "IfStatement", - "src": "3936:68:6", + "src": "3997:68:6", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1465, + "id": 1595, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "3993:10:6", + "referencedDeclaration": 1532, + "src": "4054:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9408,18 +10125,18 @@ "typeString": "uint256" } ], - "id": 1464, + "id": 1594, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1580, - "src": "3977:15:6", + "referencedDeclaration": 1718, + "src": "4038:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1466, + "id": 1596, "isConstant": false, "isLValue": false, "isPure": false, @@ -9427,58 +10144,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3977:27:6", + "src": "4038:27:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1467, + "id": 1597, "nodeType": "ExpressionStatement", - "src": "3977:27:6" + "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": 1470, + "id": 1600, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1409, + "id": 1535, "modifierName": { "argumentTypes": null, - "id": 1408, + "id": 1534, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "3292:10:6", + "referencedDeclaration": 1880, + "src": "3335:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3292:10:6" + "src": "3335:10:6" } ], "name": "removeOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1407, + "id": 1533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1402, + "id": 1528, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1470, - "src": "3215:17:6", + "scope": 1600, + "src": "3258:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9486,10 +10202,11 @@ "typeString": "address" }, "typeName": { - "id": 1401, + "id": 1527, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3215:7:6", + "src": "3258:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9500,11 +10217,11 @@ }, { "constant": false, - "id": 1404, + "id": 1530, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1470, - "src": "3234:13:6", + "scope": 1600, + "src": "3277:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9512,10 +10229,11 @@ "typeString": "address" }, "typeName": { - "id": 1403, + "id": 1529, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3234:7:6", + "src": "3277:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9526,11 +10244,11 @@ }, { "constant": false, - "id": 1406, + "id": 1532, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1470, - "src": "3249:18:6", + "scope": 1600, + "src": "3292:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9538,10 +10256,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1405, + "id": 1531, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3249:7:6", + "src": "3292:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9551,26 +10269,25 @@ "visibility": "internal" } ], - "src": "3214:54:6" + "src": "3257:54:6" }, - "payable": false, "returnParameters": { - "id": 1410, + "id": 1536, "nodeType": "ParameterList", "parameters": [], - "src": "3307:0:6" + "src": "3350:0:6" }, - "scope": 1652, - "src": "3194:817:6", + "scope": 1796, + "src": "3237:835:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1549, + "id": 1687, "nodeType": "Block", - "src": "4457:711:6", + "src": "4518:747:6", "statements": [ { "expression": { @@ -9582,7 +10299,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1488, + "id": 1620, "isConstant": false, "isLValue": false, "isPure": false, @@ -9593,19 +10310,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1484, + "id": 1616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1482, + "id": 1612, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4516:8:6", + "referencedDeclaration": 1606, + "src": "4577:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9615,23 +10332,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1483, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "4528:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "4589:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "4516:13:6", + "src": "4577:22:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9645,19 +10400,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1487, + "id": 1619, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1485, + "id": 1617, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4533:8:6", + "referencedDeclaration": 1606, + "src": "4603:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9667,24 +10422,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1486, + "id": 1618, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "4545:15:6", + "referencedDeclaration": 1352, + "src": "4615:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4533:27:6", + "src": "4603:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4516:44:6", + "src": "4577:53:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9693,14 +10448,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1489, + "id": 1621, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4562:32:6", + "src": "4632:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -9720,21 +10475,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1481, + "id": 1611, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "4508:7:6", + "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": 1490, + "id": 1622, "isConstant": false, "isLValue": false, "isPure": false, @@ -9742,15 +10497,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4508:87:6", + "src": "4569:96:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1491, + "id": 1623, "nodeType": "ExpressionStatement", - "src": "4508:87:6" + "src": "4569:96:6" }, { "expression": { @@ -9762,7 +10517,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1497, + "id": 1631, "isConstant": false, "isLValue": false, "isPure": false, @@ -9771,26 +10526,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1493, + "id": 1625, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "4653:6:6", + "referencedDeclaration": 1356, + "src": "4723:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1495, + "id": 1627, "indexExpression": { "argumentTypes": null, - "id": 1494, + "id": 1626, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4660:8:6", + "referencedDeclaration": 1606, + "src": "4730:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9801,7 +10556,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4653:16:6", + "src": "4723:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9811,23 +10566,61 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1496, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "4673:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "4743:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "4653:21:6", + "src": "4723:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9836,14 +10629,14 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1498, + "id": 1632, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4676:29:6", + "src": "4755:29:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", @@ -9863,21 +10656,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 1492, + "id": 1624, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "4645:7:6", + "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": 1499, + "id": 1633, "isConstant": false, "isLValue": false, "isPure": false, @@ -9885,15 +10678,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4645:61:6", + "src": "4715:70:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1500, + "id": 1634, "nodeType": "ExpressionStatement", - "src": "4645:61:6" + "src": "4715:70:6" }, { "expression": { @@ -9905,7 +10698,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1508, + "id": 1644, "isConstant": false, "isLValue": false, "isPure": false, @@ -9916,19 +10709,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1504, + "id": 1640, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1502, + "id": 1636, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "4807:8:6", + "referencedDeclaration": 1604, + "src": "4886:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9938,23 +10731,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1503, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "4819:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "4898:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "4807:13:6", + "src": "4886:22:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9968,19 +10799,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1507, + "id": 1643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1505, + "id": 1641, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "4824:8:6", + "referencedDeclaration": 1604, + "src": "4912:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9990,24 +10821,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1506, + "id": 1642, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "4836:15:6", + "referencedDeclaration": 1352, + "src": "4924:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4824:27:6", + "src": "4912:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4807:44:6", + "src": "4886:53:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10016,14 +10847,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1509, + "id": 1645, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4853:32:6", + "src": "4941:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -10043,21 +10874,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1501, + "id": 1635, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "4799:7:6", + "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": 1510, + "id": 1646, "isConstant": false, "isLValue": false, "isPure": false, @@ -10065,15 +10896,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4799:87:6", + "src": "4878:96:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1511, + "id": 1647, "nodeType": "ExpressionStatement", - "src": "4799:87:6" + "src": "4878:96:6" }, { "expression": { @@ -10085,7 +10916,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1517, + "id": 1653, "isConstant": false, "isLValue": false, "isPure": false, @@ -10094,26 +10925,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1513, + "id": 1649, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "4904:6:6", + "referencedDeclaration": 1356, + "src": "4992:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1515, + "id": 1651, "indexExpression": { "argumentTypes": null, - "id": 1514, + "id": 1650, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "4911:9:6", + "referencedDeclaration": 1602, + "src": "4999:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10124,7 +10955,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4904:17:6", + "src": "4992:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10134,18 +10965,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1516, + "id": 1652, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "4925:8:6", + "referencedDeclaration": 1604, + "src": "5013:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4904:29:6", + "src": "4992:29:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10154,14 +10985,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1518, + "id": 1654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4935:40:6", + "src": "5023:40:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", @@ -10181,21 +11012,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 1512, + "id": 1648, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "4896:7:6", + "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": 1519, + "id": 1655, "isConstant": false, "isLValue": false, "isPure": false, @@ -10203,20 +11034,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4896:80:6", + "src": "4984:80:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1520, + "id": 1656, "nodeType": "ExpressionStatement", - "src": "4896:80:6" + "src": "4984:80:6" }, { "expression": { "argumentTypes": null, - "id": 1527, + "id": 1663, "isConstant": false, "isLValue": false, "isPure": false, @@ -10225,26 +11056,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1521, + "id": 1657, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "4986:6:6", + "referencedDeclaration": 1356, + "src": "5074:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1523, + "id": 1659, "indexExpression": { "argumentTypes": null, - "id": 1522, + "id": 1658, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4993:8:6", + "referencedDeclaration": 1606, + "src": "5081:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10255,7 +11086,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4986:16:6", + "src": "5074:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10267,26 +11098,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1524, + "id": 1660, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "5005:6:6", + "referencedDeclaration": 1356, + "src": "5093:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1526, + "id": 1662, "indexExpression": { "argumentTypes": null, - "id": 1525, + "id": 1661, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "5012:8:6", + "referencedDeclaration": 1604, + "src": "5100:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10297,26 +11128,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5005:16:6", + "src": "5093:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4986:35:6", + "src": "5074:35:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1528, + "id": 1664, "nodeType": "ExpressionStatement", - "src": "4986:35:6" + "src": "5074:35:6" }, { "expression": { "argumentTypes": null, - "id": 1533, + "id": 1669, "isConstant": false, "isLValue": false, "isPure": false, @@ -10325,26 +11156,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1529, + "id": 1665, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "5031:6:6", + "referencedDeclaration": 1356, + "src": "5119:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1531, + "id": 1667, "indexExpression": { "argumentTypes": null, - "id": 1530, + "id": 1666, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "5038:9:6", + "referencedDeclaration": 1602, + "src": "5126:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10355,7 +11186,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5031:17:6", + "src": "5119:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10365,31 +11196,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1532, + "id": 1668, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "5051:8:6", + "referencedDeclaration": 1606, + "src": "5139:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5031:28:6", + "src": "5119:28:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1534, + "id": 1670, "nodeType": "ExpressionStatement", - "src": "5031:28:6" + "src": "5119:28:6" }, { "expression": { "argumentTypes": null, - "id": 1539, + "id": 1677, "isConstant": false, "isLValue": false, "isPure": false, @@ -10398,26 +11229,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1535, + "id": 1671, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "5069:6:6", + "referencedDeclaration": 1356, + "src": "5157:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1537, + "id": 1673, "indexExpression": { "argumentTypes": null, - "id": 1536, + "id": 1672, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "5076:8:6", + "referencedDeclaration": 1604, + "src": "5164:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10428,7 +11259,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5069:16:6", + "src": "5157:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10438,31 +11269,69 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "hexValue": "30", - "id": 1538, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "5088:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "5176:10:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "5069:20:6", + "src": "5157:29:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1540, + "id": 1678, "nodeType": "ExpressionStatement", - "src": "5069:20:6" + "src": "5157:29:6" }, { "eventCall": { @@ -10470,12 +11339,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1542, + "id": 1680, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "5117:8:6", + "referencedDeclaration": 1604, + "src": "5214:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10489,18 +11358,18 @@ "typeString": "address" } ], - "id": 1541, + "id": 1679, "name": "RemovedOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1225, - "src": "5104:12:6", + "referencedDeclaration": 1343, + "src": "5201:12:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1543, + "id": 1681, "isConstant": false, "isLValue": false, "isPure": false, @@ -10508,15 +11377,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5104:22:6", + "src": "5201:22:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1544, + "id": 1682, "nodeType": "EmitStatement", - "src": "5099:27:6" + "src": "5196:27:6" }, { "eventCall": { @@ -10524,12 +11393,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1546, + "id": 1684, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "5152:8:6", + "referencedDeclaration": 1606, + "src": "5249:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10543,18 +11412,18 @@ "typeString": "address" } ], - "id": 1545, + "id": 1683, "name": "AddedOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5141:10:6", + "referencedDeclaration": 1339, + "src": "5238:10:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1547, + "id": 1685, "isConstant": false, "isLValue": false, "isPure": false, @@ -10562,57 +11431,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5141:20:6", + "src": "5238:20:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1548, + "id": 1686, "nodeType": "EmitStatement", - "src": "5136:25:6" + "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": 1550, + "id": 1688, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1479, + "id": 1609, "modifierName": { "argumentTypes": null, - "id": 1478, + "id": 1608, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "4442:10:6", + "referencedDeclaration": 1880, + "src": "4503:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4442:10:6" + "src": "4503:10:6" } ], "name": "swapOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1477, + "id": 1607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1472, + "id": 1602, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1550, - "src": "4364:17:6", + "scope": 1688, + "src": "4425:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10620,10 +11488,11 @@ "typeString": "address" }, "typeName": { - "id": 1471, + "id": 1601, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4364:7:6", + "src": "4425:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10634,11 +11503,11 @@ }, { "constant": false, - "id": 1474, + "id": 1604, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 1550, - "src": "4383:16:6", + "scope": 1688, + "src": "4444:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10646,10 +11515,11 @@ "typeString": "address" }, "typeName": { - "id": 1473, + "id": 1603, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4383:7:6", + "src": "4444:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10660,11 +11530,11 @@ }, { "constant": false, - "id": 1476, + "id": 1606, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 1550, - "src": "4401:16:6", + "scope": 1688, + "src": "4462:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10672,10 +11542,11 @@ "typeString": "address" }, "typeName": { - "id": 1475, + "id": 1605, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4401:7:6", + "src": "4462:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10685,26 +11556,25 @@ "visibility": "internal" } ], - "src": "4363:55:6" + "src": "4424:55:6" }, - "payable": false, "returnParameters": { - "id": 1480, + "id": 1610, "nodeType": "ParameterList", "parameters": [], - "src": "4457:0:6" + "src": "4518:0:6" }, - "scope": 1652, - "src": "4345:823:6", + "scope": 1796, + "src": "4406:859:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1579, + "id": 1717, "nodeType": "Block", - "src": "5440:358:6", + "src": "5537:358:6", "statements": [ { "expression": { @@ -10716,19 +11586,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1560, + "id": 1698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1558, + "id": 1696, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "5527:10:6", + "referencedDeclaration": 1690, + "src": "5624:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10738,18 +11608,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1559, + "id": 1697, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "5541:10:6", + "referencedDeclaration": 1358, + "src": "5638:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5527:24:6", + "src": "5624:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10758,14 +11628,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1561, + "id": 1699, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5553:37:6", + "src": "5650:37:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", @@ -10785,21 +11655,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 1557, + "id": 1695, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "5519:7:6", + "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": 1562, + "id": 1700, "isConstant": false, "isLValue": false, "isPure": false, @@ -10807,15 +11677,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5519:72:6", + "src": "5616:72:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1563, + "id": 1701, "nodeType": "ExpressionStatement", - "src": "5519:72:6" + "src": "5616:72:6" }, { "expression": { @@ -10827,19 +11697,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1567, + "id": 1705, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1565, + "id": 1703, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "5661:10:6", + "referencedDeclaration": 1690, + "src": "5758:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10850,14 +11720,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1566, + "id": 1704, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5675:1:6", + "src": "5772:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -10865,7 +11735,7 @@ }, "value": "1" }, - "src": "5661:15:6", + "src": "5758:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10874,14 +11744,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1568, + "id": 1706, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5678:38:6", + "src": "5775:38:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", @@ -10901,21 +11771,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 1564, + "id": 1702, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "5653:7:6", + "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": 1569, + "id": 1707, "isConstant": false, "isLValue": false, "isPure": false, @@ -10923,32 +11793,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5653:64:6", + "src": "5750:64:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1570, + "id": 1708, "nodeType": "ExpressionStatement", - "src": "5653:64:6" + "src": "5750:64:6" }, { "expression": { "argumentTypes": null, - "id": 1573, + "id": 1711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1571, + "id": 1709, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "5727:9:6", + "referencedDeclaration": 1360, + "src": "5824:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10958,26 +11828,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1572, + "id": 1710, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "5739:10:6", + "referencedDeclaration": 1690, + "src": "5836:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5727:22:6", + "src": "5824:22:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1574, + "id": 1712, "nodeType": "ExpressionStatement", - "src": "5727:22:6" + "src": "5824:22:6" }, { "eventCall": { @@ -10985,12 +11855,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1576, + "id": 1714, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "5781:9:6", + "referencedDeclaration": 1360, + "src": "5878:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11004,18 +11874,18 @@ "typeString": "uint256" } ], - "id": 1575, + "id": 1713, "name": "ChangedThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, - "src": "5764:16:6", + "referencedDeclaration": 1347, + "src": "5861:16:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1577, + "id": 1715, "isConstant": false, "isLValue": false, "isPure": false, @@ -11023,57 +11893,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5764:27:6", + "src": "5861:27:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1578, + "id": 1716, "nodeType": "EmitStatement", - "src": "5759:32:6" + "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": 1580, + "id": 1718, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 1555, + "id": 1693, "modifierName": { "argumentTypes": null, - "id": 1554, + "id": 1692, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "5425:10:6", + "referencedDeclaration": 1880, + "src": "5522:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5425:10:6" + "src": "5522:10:6" } ], "name": "changeThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1553, + "id": 1691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1552, + "id": 1690, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1580, - "src": "5382:18:6", + "scope": 1718, + "src": "5479:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11081,10 +11950,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1551, + "id": 1689, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5382:7:6", + "src": "5479:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11094,74 +11963,71 @@ "visibility": "internal" } ], - "src": "5381:20:6" + "src": "5478:20:6" }, - "payable": false, "returnParameters": { - "id": 1556, + "id": 1694, "nodeType": "ParameterList", "parameters": [], - "src": "5440:0:6" + "src": "5537:0:6" }, - "scope": 1652, - "src": "5357:441:6", + "scope": 1796, + "src": "5454:441:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1587, + "id": 1725, "nodeType": "Block", - "src": "5886:33:6", + "src": "5983:33:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 1585, + "id": 1723, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "5903:9:6", + "referencedDeclaration": 1360, + "src": "6000:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1584, - "id": 1586, + "functionReturnParameters": 1722, + "id": 1724, "nodeType": "Return", - "src": "5896:16:6" + "src": "5993:16:6" } ] }, "documentation": null, - "id": 1588, + "id": 1726, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "getThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1581, + "id": 1719, "nodeType": "ParameterList", "parameters": [], - "src": "5825:2:6" + "src": "5922:2:6" }, - "payable": false, "returnParameters": { - "id": 1584, + "id": 1722, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1583, + "id": 1721, "name": "", "nodeType": "VariableDeclaration", - "scope": 1588, - "src": "5873:7:6", + "scope": 1726, + "src": "5970:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11169,10 +12035,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1582, + "id": 1720, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5873:7:6", + "src": "5970:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11182,124 +12048,225 @@ "visibility": "internal" } ], - "src": "5872:9:6" + "src": "5969:9:6" }, - "scope": 1652, - "src": "5804:115:6", + "scope": 1796, + "src": "5901:115:6", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1601, + "id": 1745, "nodeType": "Block", - "src": "6012:42:6", + "src": "6109:79:6", "statements": [ { "expression": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "id": 1599, + "id": 1743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1595, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "6029:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 1597, - "indexExpression": { + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 1596, + "id": 1733, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1590, - "src": "6036:5:6", + "referencedDeclaration": 1728, + "src": "6126:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6029:13:6", + "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_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": "&&", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1598, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1742, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "6046:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "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" + } }, - "value": "0" + "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": "6029:18:6", + "src": "6126:55:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1594, - "id": 1600, + "functionReturnParameters": 1732, + "id": 1744, "nodeType": "Return", - "src": "6022:25:6" + "src": "6119:62:6" } ] }, "documentation": null, - "id": 1602, + "id": 1746, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "isOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1591, + "id": 1729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1590, + "id": 1728, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1602, - "src": "5942:13:6", + "scope": 1746, + "src": "6039:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11307,10 +12274,11 @@ "typeString": "address" }, "typeName": { - "id": 1589, + "id": 1727, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5942:7:6", + "src": "6039:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11320,20 +12288,19 @@ "visibility": "internal" } ], - "src": "5941:15:6" + "src": "6038:15:6" }, - "payable": false, "returnParameters": { - "id": 1594, + "id": 1732, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1593, + "id": 1731, "name": "", "nodeType": "VariableDeclaration", - "scope": 1602, - "src": "6002:4:6", + "scope": 1746, + "src": "6099:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11341,10 +12308,10 @@ "typeString": "bool" }, "typeName": { - "id": 1592, + "id": 1730, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6002:4:6", + "src": "6099:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11354,32 +12321,32 @@ "visibility": "internal" } ], - "src": "6001:6:6" + "src": "6098:6:6" }, - "scope": 1652, - "src": "5925:129:6", + "scope": 1796, + "src": "6022:166:6", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1650, + "id": 1794, "nodeType": "Block", - "src": "6217:377:6", + "src": "6358:377:6", "statements": [ { "assignments": [ - 1611 + 1755 ], "declarations": [ { "constant": false, - "id": 1611, + "id": 1755, "name": "array", "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6227:22:6", + "scope": 1794, + "src": "6368:22:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -11388,19 +12355,19 @@ }, "typeName": { "baseType": { - "id": 1609, + "id": 1753, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6227:7:6", + "src": "6368:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1610, + "id": 1754, "length": null, "nodeType": "ArrayTypeName", - "src": "6227:9:6", + "src": "6368:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -11410,18 +12377,18 @@ "visibility": "internal" } ], - "id": 1617, + "id": 1761, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1615, + "id": 1759, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "6266:10:6", + "referencedDeclaration": 1358, + "src": "6407:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11435,39 +12402,40 @@ "typeString": "uint256" } ], - "id": 1614, + "id": 1758, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6252:13:6", + "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": 1612, + "id": 1756, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6256:7:6", + "src": "6397:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1613, + "id": 1757, "length": null, "nodeType": "ArrayTypeName", - "src": "6256:9:6", + "src": "6397:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 1616, + "id": 1760, "isConstant": false, "isLValue": false, "isPure": false, @@ -11475,27 +12443,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6252:25:6", + "src": "6393:25:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "6227:50:6" + "src": "6368:50:6" }, { "assignments": [ - 1619 + 1763 ], "declarations": [ { "constant": false, - "id": 1619, + "id": 1763, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6321:13:6", + "scope": 1794, + "src": "6462:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11503,10 +12471,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1618, + "id": 1762, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6321:7:6", + "src": "6462:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11516,18 +12484,18 @@ "visibility": "internal" } ], - "id": 1621, + "id": 1765, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1620, + "id": 1764, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6337:1:6", + "src": "6478:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11536,20 +12504,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6321:17:6" + "src": "6462:17:6" }, { "assignments": [ - 1623 + 1767 ], "declarations": [ { "constant": false, - "id": 1623, + "id": 1767, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6348:20:6", + "scope": 1794, + "src": "6489:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11557,10 +12525,11 @@ "typeString": "address" }, "typeName": { - "id": 1622, + "id": 1766, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6348:7:6", + "src": "6489:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11570,31 +12539,31 @@ "visibility": "internal" } ], - "id": 1627, + "id": 1771, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1624, + "id": 1768, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "6371:6:6", + "referencedDeclaration": 1356, + "src": "6512:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1626, + "id": 1770, "indexExpression": { "argumentTypes": null, - "id": 1625, + "id": 1769, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "6378:15:6", + "referencedDeclaration": 1352, + "src": "6519:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11605,25 +12574,25 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6371:23:6", + "src": "6512:23:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "6348:46:6" + "src": "6489:46:6" }, { "body": { - "id": 1646, + "id": 1790, "nodeType": "Block", - "src": "6443:123:6", + "src": "6584:123:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 1635, + "id": 1779, "isConstant": false, "isLValue": false, "isPure": false, @@ -11632,26 +12601,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1631, + "id": 1775, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1611, - "src": "6457:5:6", + "referencedDeclaration": 1755, + "src": "6598:5:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1633, + "id": 1777, "indexExpression": { "argumentTypes": null, - "id": 1632, + "id": 1776, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1619, - "src": "6463:5:6", + "referencedDeclaration": 1763, + "src": "6604:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11662,7 +12631,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6457:12:6", + "src": "6598:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11672,43 +12641,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1634, + "id": 1778, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6472:12:6", + "referencedDeclaration": 1767, + "src": "6613:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6457:27:6", + "src": "6598:27:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1636, + "id": 1780, "nodeType": "ExpressionStatement", - "src": "6457:27:6" + "src": "6598:27:6" }, { "expression": { "argumentTypes": null, - "id": 1641, + "id": 1785, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1637, + "id": 1781, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6498:12:6", + "referencedDeclaration": 1767, + "src": "6639:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11720,26 +12689,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1638, + "id": 1782, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "6513:6:6", + "referencedDeclaration": 1356, + "src": "6654:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1640, + "id": 1784, "indexExpression": { "argumentTypes": null, - "id": 1639, + "id": 1783, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6520:12:6", + "referencedDeclaration": 1767, + "src": "6661:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11750,26 +12719,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6513:20:6", + "src": "6654:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6498:35:6", + "src": "6639:35:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1642, + "id": 1786, "nodeType": "ExpressionStatement", - "src": "6498:35:6" + "src": "6639:35:6" }, { "expression": { "argumentTypes": null, - "id": 1644, + "id": 1788, "isConstant": false, "isLValue": false, "isPure": false, @@ -11777,15 +12746,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6547:8:6", + "src": "6688:8:6", "subExpression": { "argumentTypes": null, - "id": 1643, + "id": 1787, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1619, - "src": "6547:5:6", + "referencedDeclaration": 1763, + "src": "6688:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11796,9 +12765,9 @@ "typeString": "uint256" } }, - "id": 1645, + "id": 1789, "nodeType": "ExpressionStatement", - "src": "6547:8:6" + "src": "6688:8:6" } ] }, @@ -11808,19 +12777,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1630, + "id": 1774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1628, + "id": 1772, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6410:12:6", + "referencedDeclaration": 1767, + "src": "6551:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11830,95 +12799,94 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1629, + "id": 1773, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "6426:15:6", + "referencedDeclaration": 1352, + "src": "6567:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6410:31:6", + "src": "6551:31:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1647, + "id": 1791, "nodeType": "WhileStatement", - "src": "6404:162:6" + "src": "6545:162:6" }, { "expression": { "argumentTypes": null, - "id": 1648, + "id": 1792, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1611, - "src": "6582:5:6", + "referencedDeclaration": 1755, + "src": "6723:5:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 1607, - "id": 1649, + "functionReturnParameters": 1751, + "id": 1793, "nodeType": "Return", - "src": "6575:12:6" + "src": "6716:12:6" } ] }, "documentation": "@dev Returns array of owners.\n @return Array of Safe owners.", - "id": 1651, + "id": 1795, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "getOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 1603, + "id": 1747, "nodeType": "ParameterList", "parameters": [], - "src": "6154:2:6" + "src": "6288:2:6" }, - "payable": false, "returnParameters": { - "id": 1607, + "id": 1751, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1606, + "id": 1750, "name": "", "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6202:9:6", + "scope": 1795, + "src": "6336:16:6", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 1604, + "id": 1748, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6202:7:6", + "src": "6336:7:6", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1605, + "id": 1749, "length": null, "nodeType": "ArrayTypeName", - "src": "6202:9:6", + "src": "6336:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -11928,26 +12896,26 @@ "visibility": "internal" } ], - "src": "6201:11:6" + "src": "6335:18:6" }, - "scope": 1652, - "src": "6136:458:6", + "scope": 1796, + "src": "6270:465:6", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1653, - "src": "248:6348:6" + "scope": 1797, + "src": "248:6489:6" } ], - "src": "0:6597:6" + "src": "0:6738:6" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.918Z" + "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 index 1ecaafe9..55f2ccb7 100644 --- a/safe-contracts/build/contracts/PayingProxy.json +++ b/safe-contracts/build/contracts/PayingProxy.json @@ -1,34 +1,6 @@ { "contractName": "PayingProxy", "abi": [ - { - "constant": true, - "inputs": [], - "name": "proxyType", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "implementation", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -62,51 +34,52 @@ "type": "fallback" } ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161060a38038061060a833981018060405281019080805190602001909291908051820192919060200180519060200190929190805190602001909291908051906020019092919050505084848160008173ffffffffffffffffffffffffffffffffffffffff1614151515610116576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156101a35773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e600082141561019f573d81fd5b5050505b5050600081111561036d57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156102b7578273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156102b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f436f756c64206e6f74207061792073616665206372656174696f6e207769746881526020017f206574686572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61036c565b6102d1828483610377640100000000026401000000009004565b151561036b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f436f756c64206e6f74207061792073616665206372656174696f6e207769746881526020017f20746f6b656e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b5050505050610490565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d60008114610473576020811461047b5760009450610485565b829450610485565b8151158315171594505b505050509392505050565b61016b8061049f6000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820f4865d803249158ffb1d82b19d119f60c2a50ca3b6f4fa2715b2740fb12915270029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820f4865d803249158ffb1d82b19d119f60c2a50ca3b6f4fa2715b2740fb12915270029", - "sourceMap": "459:1072:22:-;;;953:576;8:9:-1;5:2;;;30:1;27;20:12;5:2;953:576:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:11;1107;668::21;593:1:23;578:11;:16;;;;570:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:11;645:10;;:24;;;;;;;;;;;;;;;;;;508:168;735:1:21;714:11;:18;:22;710:519;;;879:42;875:1;869:8;865:57;1043:1;1040;1026:11;1020:18;1013:4;1000:11;996:22;984:10;976:5;971:3;967:15;954:91;1079:4;1073:11;1124:14;1121:1;1116:3;1101:38;1171:1;1162:7;1159:14;1156:2;;;1188:14;1183:3;1176:27;1156:2;829:390;;;;610:625;;1163:1:22;1153:7;:11;1149:373;;;1208:1;1184:26;;:12;:26;;;1180:332;;;1300:6;:11;;:20;1312:7;1300:20;;;;;;;;;;;;;;;;;;;;;;;1292:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1180:332;;;1410:44;1424:12;1438:6;1446:7;1410:13;;;:44;;;:::i;:::-;1402:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1180:332;1149:373;953:576;;;;;459:1072;;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:1072:22:-;;;;;;;", - "deployedSourceMap": "459:1072:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;955:42:23;951:1;945:8;941:57;1030:14;1027:1;1024;1011:34;1125:1;1122;1106:14;1103:1;1091:10;1086:3;1073:54;1161:16;1158:1;1155;1140:38;1206:1;1197:7;1194:14;1191:2;;;1221:16;1218:1;1211:27;1191:2;1263:16;1260:1;1253:27;1426:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1426:104:23;;;;;;;;;;;;;;;;;;;;;;;1302:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:118:23;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:104;1492:7;1522:1;1515:8;;1426:104;:::o;1302:118::-;1373:7;1403:10;;;;;;;;;;;1396:17;;1302:118;:::o", - "source": "pragma solidity 0.4.24;\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 initializer, address 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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/PayingProxy.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/PayingProxy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/PayingProxy.sol", "exportedSymbols": { "PayingProxy": [ - 2797 + 3092 ] }, - "id": 2798, + "id": 3093, "nodeType": "SourceUnit", "nodes": [ { - "id": 2742, + "id": 3037, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:22" + "src": "0:23:23" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", "file": "../common/SecuredTokenTransfer.sol", - "id": 2743, + "id": 3038, "nodeType": "ImportDirective", - "scope": 2798, - "sourceUnit": 1719, - "src": "24:44:22", + "scope": 3093, + "sourceUnit": 1865, + "src": "24:44:23", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", "file": "./DelegateConstructorProxy.sol", - "id": 2744, + "id": 3039, "nodeType": "ImportDirective", - "scope": 2798, - "sourceUnit": 2741, - "src": "69:40:22", + "scope": 3093, + "sourceUnit": 3036, + "src": "69:40:23", "symbolAliases": [], "unitAlias": "" }, @@ -116,62 +89,62 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2745, + "id": 3040, "name": "DelegateConstructorProxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2740, - "src": "483:24:22", + "referencedDeclaration": 3035, + "src": "483:24:23", "typeDescriptions": { - "typeIdentifier": "t_contract$_DelegateConstructorProxy_$2740", + "typeIdentifier": "t_contract$_DelegateConstructorProxy_$3035", "typeString": "contract DelegateConstructorProxy" } }, - "id": 2746, + "id": 3041, "nodeType": "InheritanceSpecifier", - "src": "483:24:22" + "src": "483:24:23" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2747, + "id": 3042, "name": "SecuredTokenTransfer", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1718, - "src": "509:20:22", + "referencedDeclaration": 1864, + "src": "509:20:23", "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1718", + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1864", "typeString": "contract SecuredTokenTransfer" } }, - "id": 2748, + "id": 3043, "nodeType": "InheritanceSpecifier", - "src": "509:20:22" + "src": "509:20:23" } ], "contractDependencies": [ - 1718, - 2740, - 2840 + 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": 2797, + "id": 3092, "linearizedBaseContracts": [ - 2797, - 1718, - 2740, - 2840 + 3092, + 1864, + 3035, + 3121 ], "name": "PayingProxy", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2795, + "id": 3090, "nodeType": "Block", - "src": "1139:390:22", + "src": "1154:390:23", "statements": [ { "condition": { @@ -180,19 +153,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2767, + "id": 3062, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2765, + "id": 3060, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2758, - "src": "1153:7:22", + "referencedDeclaration": 3053, + "src": "1168:7:23", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -203,14 +176,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2766, + "id": 3061, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1163:1:22", + "src": "1178:1:23", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -218,20 +191,20 @@ }, "value": "0" }, - "src": "1153:11:22", + "src": "1168:11:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2794, + "id": 3089, "nodeType": "IfStatement", - "src": "1149:373:22", + "src": "1164:373:23", "trueBody": { - "id": 2793, + "id": 3088, "nodeType": "Block", - "src": "1166:356:22", + "src": "1181:356:23", "statements": [ { "condition": { @@ -240,19 +213,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2772, + "id": 3067, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2768, + "id": 3063, "name": "paymentToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2756, - "src": "1184:12:22", + "referencedDeclaration": 3051, + "src": "1199:12:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -266,14 +239,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2770, + "id": 3065, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1208:1:22", + "src": "1223:1:23", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -289,20 +262,20 @@ "typeString": "int_const 0" } ], - "id": 2769, + "id": 3064, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1200:7:22", + "src": "1215:7:23", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2771, + "id": 3066, "isConstant": false, "isLValue": false, "isPure": true, @@ -310,22 +283,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1200:10:22", + "src": "1215:10:23", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "src": "1184:26:22", + "src": "1199:26:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2791, + "id": 3086, "nodeType": "Block", - "src": "1384:128:22", + "src": "1399:128:23", "statements": [ { "expression": { @@ -336,12 +309,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2784, + "id": 3079, "name": "paymentToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2756, - "src": "1424:12:22", + "referencedDeclaration": 3051, + "src": "1439:12:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -349,25 +322,25 @@ }, { "argumentTypes": null, - "id": 2785, + "id": 3080, "name": "funder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2754, - "src": "1438:6:22", + "referencedDeclaration": 3049, + "src": "1453:6:23", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, { "argumentTypes": null, - "id": 2786, + "id": 3081, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2758, - "src": "1446:7:22", + "referencedDeclaration": 3053, + "src": "1461:7:23", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -381,26 +354,26 @@ "typeString": "address" }, { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 2783, + "id": 3078, "name": "transferToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1717, - "src": "1410:13:22", + "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": 2787, + "id": 3082, "isConstant": false, "isLValue": false, "isPure": false, @@ -408,7 +381,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1410:44:22", + "src": "1425:44:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -417,14 +390,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e207769746820746f6b656e", - "id": 2788, + "id": 3083, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1456:40:22", + "src": "1471:40:23", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", @@ -444,21 +417,21 @@ "typeString": "literal_string \"Could not pay safe creation with token\"" } ], - "id": 2782, + "id": 3077, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1402:7:22", + "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": 2789, + "id": 3084, "isConstant": false, "isLValue": false, "isPure": false, @@ -466,25 +439,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1402:95:22", + "src": "1417:95:23", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2790, + "id": 3085, "nodeType": "ExpressionStatement", - "src": "1402:95:22" + "src": "1417:95:23" } ] }, - "id": 2792, + "id": 3087, "nodeType": "IfStatement", - "src": "1180:332:22", + "src": "1195:332:23", "trueBody": { - "id": 2781, + "id": 3076, "nodeType": "Block", - "src": "1212:166:22", + "src": "1227:166:23", "statements": [ { "expression": { @@ -495,12 +468,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2776, + "id": 3071, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2758, - "src": "1312:7:22", + "referencedDeclaration": 3053, + "src": "1327:7:23", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -516,18 +489,18 @@ ], "expression": { "argumentTypes": null, - "id": 2774, + "id": 3069, "name": "funder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2754, - "src": "1300:6:22", + "referencedDeclaration": 3049, + "src": "1315:6:23", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "id": 2775, + "id": 3070, "isConstant": false, "isLValue": false, "isPure": false, @@ -535,13 +508,13 @@ "memberName": "send", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1300:11:22", + "src": "1315:11:23", "typeDescriptions": { "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) returns (bool)" } }, - "id": 2777, + "id": 3072, "isConstant": false, "isLValue": false, "isPure": false, @@ -549,7 +522,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1300:20:22", + "src": "1315:20:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -558,14 +531,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e2077697468206574686572", - "id": 2778, + "id": 3073, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1322:40:22", + "src": "1337:40:23", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", @@ -585,21 +558,21 @@ "typeString": "literal_string \"Could not pay safe creation with ether\"" } ], - "id": 2773, + "id": 3068, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1292:7:22", + "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": 2779, + "id": 3074, "isConstant": false, "isLValue": false, "isPure": false, @@ -607,15 +580,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1292:71:22", + "src": "1307:71:23", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2780, + "id": 3075, "nodeType": "ExpressionStatement", - "src": "1292:71:22" + "src": "1307:71:23" } ] } @@ -626,21 +599,20 @@ ] }, "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": 2796, + "id": 3091, "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, + "kind": "constructor", "modifiers": [ { "arguments": [ { "argumentTypes": null, - "id": 2761, + "id": 3056, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2750, - "src": "1094:11:22", + "referencedDeclaration": 3045, + "src": "1109:11:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -648,49 +620,49 @@ }, { "argumentTypes": null, - "id": 2762, + "id": 3057, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2752, - "src": "1107:11:22", + "referencedDeclaration": 3047, + "src": "1122:11:23", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], - "id": 2763, + "id": 3058, "modifierName": { "argumentTypes": null, - "id": 2760, + "id": 3055, "name": "DelegateConstructorProxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "1069:24:22", + "referencedDeclaration": 3035, + "src": "1084:24:23", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$2740_$", + "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$3035_$", "typeString": "type(contract DelegateConstructorProxy)" } }, "nodeType": "ModifierInvocation", - "src": "1069:50:22" + "src": "1084:50:23" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2759, + "id": 3054, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2750, + "id": 3045, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "965:19:22", + "scope": 3091, + "src": "965:19:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -698,10 +670,11 @@ "typeString": "address" }, "typeName": { - "id": 2749, + "id": 3044, "name": "address", "nodeType": "ElementaryTypeName", - "src": "965:7:22", + "src": "965:7:23", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -712,22 +685,22 @@ }, { "constant": false, - "id": 2752, + "id": 3047, "name": "initializer", "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "986:17:22", + "scope": 3091, + "src": "986:24:23", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2751, + "id": 3046, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "986:5:22", + "src": "986:5:23", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -738,25 +711,26 @@ }, { "constant": false, - "id": 2754, + "id": 3049, "name": "funder", "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "1005:14:22", + "scope": 3091, + "src": "1012:22:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, "typeName": { - "id": 2753, + "id": 3048, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1005:7:22", + "src": "1012:15:23", + "stateMutability": "payable", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "value": null, @@ -764,11 +738,11 @@ }, { "constant": false, - "id": 2756, + "id": 3051, "name": "paymentToken", "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "1021:20:22", + "scope": 3091, + "src": "1036:20:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -776,10 +750,11 @@ "typeString": "address" }, "typeName": { - "id": 2755, + "id": 3050, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1021:7:22", + "src": "1036:7:23", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -790,11 +765,11 @@ }, { "constant": false, - "id": 2758, + "id": 3053, "name": "payment", "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "1043:15:22", + "scope": 3091, + "src": "1058:15:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -802,10 +777,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2757, + "id": 3052, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1043:7:22", + "src": "1058:7:23", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -815,67 +790,67 @@ "visibility": "internal" } ], - "src": "964:95:22" + "src": "964:110:23" }, - "payable": false, "returnParameters": { - "id": 2764, + "id": 3059, "nodeType": "ParameterList", "parameters": [], - "src": "1139:0:22" + "src": "1154:0:23" }, - "scope": 2797, - "src": "953:576:22", + "scope": 3092, + "src": "953:591:23", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2798, - "src": "459:1072:22" + "scope": 3093, + "src": "459:1087:23" } ], - "src": "0:1532:22" + "src": "0:1547:23" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/PayingProxy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/PayingProxy.sol", "exportedSymbols": { "PayingProxy": [ - 2797 + 3092 ] }, - "id": 2798, + "id": 3093, "nodeType": "SourceUnit", "nodes": [ { - "id": 2742, + "id": 3037, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:22" + "src": "0:23:23" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", "file": "../common/SecuredTokenTransfer.sol", - "id": 2743, + "id": 3038, "nodeType": "ImportDirective", - "scope": 2798, - "sourceUnit": 1719, - "src": "24:44:22", + "scope": 3093, + "sourceUnit": 1865, + "src": "24:44:23", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", "file": "./DelegateConstructorProxy.sol", - "id": 2744, + "id": 3039, "nodeType": "ImportDirective", - "scope": 2798, - "sourceUnit": 2741, - "src": "69:40:22", + "scope": 3093, + "sourceUnit": 3036, + "src": "69:40:23", "symbolAliases": [], "unitAlias": "" }, @@ -885,62 +860,62 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2745, + "id": 3040, "name": "DelegateConstructorProxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2740, - "src": "483:24:22", + "referencedDeclaration": 3035, + "src": "483:24:23", "typeDescriptions": { - "typeIdentifier": "t_contract$_DelegateConstructorProxy_$2740", + "typeIdentifier": "t_contract$_DelegateConstructorProxy_$3035", "typeString": "contract DelegateConstructorProxy" } }, - "id": 2746, + "id": 3041, "nodeType": "InheritanceSpecifier", - "src": "483:24:22" + "src": "483:24:23" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2747, + "id": 3042, "name": "SecuredTokenTransfer", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1718, - "src": "509:20:22", + "referencedDeclaration": 1864, + "src": "509:20:23", "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1718", + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1864", "typeString": "contract SecuredTokenTransfer" } }, - "id": 2748, + "id": 3043, "nodeType": "InheritanceSpecifier", - "src": "509:20:22" + "src": "509:20:23" } ], "contractDependencies": [ - 1718, - 2740, - 2840 + 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": 2797, + "id": 3092, "linearizedBaseContracts": [ - 2797, - 1718, - 2740, - 2840 + 3092, + 1864, + 3035, + 3121 ], "name": "PayingProxy", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2795, + "id": 3090, "nodeType": "Block", - "src": "1139:390:22", + "src": "1154:390:23", "statements": [ { "condition": { @@ -949,19 +924,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2767, + "id": 3062, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2765, + "id": 3060, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2758, - "src": "1153:7:22", + "referencedDeclaration": 3053, + "src": "1168:7:23", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -972,14 +947,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2766, + "id": 3061, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1163:1:22", + "src": "1178:1:23", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -987,20 +962,20 @@ }, "value": "0" }, - "src": "1153:11:22", + "src": "1168:11:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2794, + "id": 3089, "nodeType": "IfStatement", - "src": "1149:373:22", + "src": "1164:373:23", "trueBody": { - "id": 2793, + "id": 3088, "nodeType": "Block", - "src": "1166:356:22", + "src": "1181:356:23", "statements": [ { "condition": { @@ -1009,19 +984,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2772, + "id": 3067, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2768, + "id": 3063, "name": "paymentToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2756, - "src": "1184:12:22", + "referencedDeclaration": 3051, + "src": "1199:12:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1035,14 +1010,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2770, + "id": 3065, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1208:1:22", + "src": "1223:1:23", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1058,20 +1033,20 @@ "typeString": "int_const 0" } ], - "id": 2769, + "id": 3064, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1200:7:22", + "src": "1215:7:23", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2771, + "id": 3066, "isConstant": false, "isLValue": false, "isPure": true, @@ -1079,22 +1054,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1200:10:22", + "src": "1215:10:23", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "src": "1184:26:22", + "src": "1199:26:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2791, + "id": 3086, "nodeType": "Block", - "src": "1384:128:22", + "src": "1399:128:23", "statements": [ { "expression": { @@ -1105,12 +1080,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2784, + "id": 3079, "name": "paymentToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2756, - "src": "1424:12:22", + "referencedDeclaration": 3051, + "src": "1439:12:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1118,25 +1093,25 @@ }, { "argumentTypes": null, - "id": 2785, + "id": 3080, "name": "funder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2754, - "src": "1438:6:22", + "referencedDeclaration": 3049, + "src": "1453:6:23", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, { "argumentTypes": null, - "id": 2786, + "id": 3081, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2758, - "src": "1446:7:22", + "referencedDeclaration": 3053, + "src": "1461:7:23", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1150,26 +1125,26 @@ "typeString": "address" }, { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 2783, + "id": 3078, "name": "transferToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1717, - "src": "1410:13:22", + "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": 2787, + "id": 3082, "isConstant": false, "isLValue": false, "isPure": false, @@ -1177,7 +1152,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1410:44:22", + "src": "1425:44:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1186,14 +1161,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e207769746820746f6b656e", - "id": 2788, + "id": 3083, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1456:40:22", + "src": "1471:40:23", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", @@ -1213,21 +1188,21 @@ "typeString": "literal_string \"Could not pay safe creation with token\"" } ], - "id": 2782, + "id": 3077, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1402:7:22", + "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": 2789, + "id": 3084, "isConstant": false, "isLValue": false, "isPure": false, @@ -1235,25 +1210,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1402:95:22", + "src": "1417:95:23", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2790, + "id": 3085, "nodeType": "ExpressionStatement", - "src": "1402:95:22" + "src": "1417:95:23" } ] }, - "id": 2792, + "id": 3087, "nodeType": "IfStatement", - "src": "1180:332:22", + "src": "1195:332:23", "trueBody": { - "id": 2781, + "id": 3076, "nodeType": "Block", - "src": "1212:166:22", + "src": "1227:166:23", "statements": [ { "expression": { @@ -1264,12 +1239,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2776, + "id": 3071, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2758, - "src": "1312:7:22", + "referencedDeclaration": 3053, + "src": "1327:7:23", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1285,18 +1260,18 @@ ], "expression": { "argumentTypes": null, - "id": 2774, + "id": 3069, "name": "funder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2754, - "src": "1300:6:22", + "referencedDeclaration": 3049, + "src": "1315:6:23", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "id": 2775, + "id": 3070, "isConstant": false, "isLValue": false, "isPure": false, @@ -1304,13 +1279,13 @@ "memberName": "send", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1300:11:22", + "src": "1315:11:23", "typeDescriptions": { "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) returns (bool)" } }, - "id": 2777, + "id": 3072, "isConstant": false, "isLValue": false, "isPure": false, @@ -1318,7 +1293,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1300:20:22", + "src": "1315:20:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1327,14 +1302,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e2077697468206574686572", - "id": 2778, + "id": 3073, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1322:40:22", + "src": "1337:40:23", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", @@ -1354,21 +1329,21 @@ "typeString": "literal_string \"Could not pay safe creation with ether\"" } ], - "id": 2773, + "id": 3068, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1292:7:22", + "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": 2779, + "id": 3074, "isConstant": false, "isLValue": false, "isPure": false, @@ -1376,15 +1351,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1292:71:22", + "src": "1307:71:23", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2780, + "id": 3075, "nodeType": "ExpressionStatement", - "src": "1292:71:22" + "src": "1307:71:23" } ] } @@ -1395,21 +1370,20 @@ ] }, "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": 2796, + "id": 3091, "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, + "kind": "constructor", "modifiers": [ { "arguments": [ { "argumentTypes": null, - "id": 2761, + "id": 3056, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2750, - "src": "1094:11:22", + "referencedDeclaration": 3045, + "src": "1109:11:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1417,49 +1391,49 @@ }, { "argumentTypes": null, - "id": 2762, + "id": 3057, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2752, - "src": "1107:11:22", + "referencedDeclaration": 3047, + "src": "1122:11:23", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], - "id": 2763, + "id": 3058, "modifierName": { "argumentTypes": null, - "id": 2760, + "id": 3055, "name": "DelegateConstructorProxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "1069:24:22", + "referencedDeclaration": 3035, + "src": "1084:24:23", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$2740_$", + "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$3035_$", "typeString": "type(contract DelegateConstructorProxy)" } }, "nodeType": "ModifierInvocation", - "src": "1069:50:22" + "src": "1084:50:23" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2759, + "id": 3054, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2750, + "id": 3045, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "965:19:22", + "scope": 3091, + "src": "965:19:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1467,10 +1441,11 @@ "typeString": "address" }, "typeName": { - "id": 2749, + "id": 3044, "name": "address", "nodeType": "ElementaryTypeName", - "src": "965:7:22", + "src": "965:7:23", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1481,22 +1456,22 @@ }, { "constant": false, - "id": 2752, + "id": 3047, "name": "initializer", "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "986:17:22", + "scope": 3091, + "src": "986:24:23", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2751, + "id": 3046, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "986:5:22", + "src": "986:5:23", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1507,25 +1482,26 @@ }, { "constant": false, - "id": 2754, + "id": 3049, "name": "funder", "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "1005:14:22", + "scope": 3091, + "src": "1012:22:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, "typeName": { - "id": 2753, + "id": 3048, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1005:7:22", + "src": "1012:15:23", + "stateMutability": "payable", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "value": null, @@ -1533,11 +1509,11 @@ }, { "constant": false, - "id": 2756, + "id": 3051, "name": "paymentToken", "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "1021:20:22", + "scope": 3091, + "src": "1036:20:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1545,10 +1521,11 @@ "typeString": "address" }, "typeName": { - "id": 2755, + "id": 3050, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1021:7:22", + "src": "1036:7:23", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1559,11 +1536,11 @@ }, { "constant": false, - "id": 2758, + "id": 3053, "name": "payment", "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "1043:15:22", + "scope": 3091, + "src": "1058:15:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1571,10 +1548,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2757, + "id": 3052, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1043:7:22", + "src": "1058:7:23", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1584,33 +1561,32 @@ "visibility": "internal" } ], - "src": "964:95:22" + "src": "964:110:23" }, - "payable": false, "returnParameters": { - "id": 2764, + "id": 3059, "nodeType": "ParameterList", "parameters": [], - "src": "1139:0:22" + "src": "1154:0:23" }, - "scope": 2797, - "src": "953:576:22", + "scope": 3092, + "src": "953:591:23", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2798, - "src": "459:1072:22" + "scope": 3093, + "src": "459:1087:23" } ], - "src": "0:1532:22" + "src": "0:1547:23" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.945Z" + "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 index 0149b177..47d4fe2f 100644 --- a/safe-contracts/build/contracts/Proxy.json +++ b/safe-contracts/build/contracts/Proxy.json @@ -16,61 +16,34 @@ "payable": true, "stateMutability": "payable", "type": "fallback" - }, - { - "constant": true, - "inputs": [], - "name": "implementation", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "proxyType", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506040516020806102a38339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff16141515156100e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806101386000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820aeb00387246db55c17338bd7ef9b5b2e6db9a2a81ab640f7b12e1488be97fe9f0029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820aeb00387246db55c17338bd7ef9b5b2e6db9a2a81ab640f7b12e1488be97fe9f0029", - "sourceMap": "190:1342:23:-;;;508:168;8:9:-1;5:2;;;30:1;27;20:12;5:2;508:168:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;593:1;578:11;:16;;;;570:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:11;645:10;;:24;;;;;;;;;;;;;;;;;;508:168;190:1342;;;;;;", - "deployedSourceMap": "190:1342:23:-;;;;;;;;;;;;;;;;;;;;;;;;;;955:42;951:1;945:8;941:57;1030:14;1027:1;1024;1011:34;1125:1;1122;1106:14;1103:1;1091:10;1086:3;1073:54;1161:16;1158:1;1155;1140:38;1206:1;1197:7;1194:14;1191:2;;;1221:16;1218:1;1211:27;1191:2;1263:16;1260:1;1253:27;1426:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1426:104:23;;;;;;;;;;;;;;;;;;;;;;;1302:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:118:23;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:104;1492:7;1522:1;1515:8;;1426:104;:::o;1302:118::-;1373:7;1403:10;;;;;;;;;;;1396:17;;1302:118;:::o", - "source": "pragma solidity 0.4.24;\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 address 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 != 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 function implementation()\n public\n view\n returns (address)\n {\n return masterCopy;\n }\n\n function proxyType()\n public\n pure\n returns (uint256)\n {\n return 2;\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", "exportedSymbols": { "Proxy": [ - 2840 + 3121 ] }, - "id": 2841, + "id": 3122, "nodeType": "SourceUnit", "nodes": [ { - "id": 2799, + "id": 3094, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:23" + "src": "0:23:24" }, { "baseContracts": [], @@ -78,20 +51,20 @@ "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": 2840, + "id": 3121, "linearizedBaseContracts": [ - 2840 + 3121 ], "name": "Proxy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2801, + "id": 3096, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 2840, - "src": "363:18:23", + "scope": 3121, + "src": "468:27:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -99,10 +72,11 @@ "typeString": "address" }, "typeName": { - "id": 2800, + "id": 3095, "name": "address", "nodeType": "ElementaryTypeName", - "src": "363:7:23", + "src": "468:7:24", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -113,9 +87,9 @@ }, { "body": { - "id": 2817, + "id": 3114, "nodeType": "Block", - "src": "560:116:23", + "src": "674:125:24", "statements": [ { "expression": { @@ -127,19 +101,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2809, + "id": 3106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2807, + "id": 3102, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "578:11:23", + "referencedDeclaration": 3098, + "src": "692:11:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -149,23 +123,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2808, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "593:1:23", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "707:10:24", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "578:16:23", + "src": "692:25:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -174,14 +186,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 2810, + "id": 3107, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "596:38:23", + "src": "719:38:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", @@ -201,21 +213,21 @@ "typeString": "literal_string \"Invalid master copy address provided\"" } ], - "id": 2806, + "id": 3101, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "570:7:23", + "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": 2811, + "id": 3108, "isConstant": false, "isLValue": false, "isPure": false, @@ -223,32 +235,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "570:65:23", + "src": "684:74:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2812, + "id": 3109, "nodeType": "ExpressionStatement", - "src": "570:65:23" + "src": "684:74:24" }, { "expression": { "argumentTypes": null, - "id": 2815, + "id": 3112, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2813, + "id": 3110, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2801, - "src": "645:10:23", + "referencedDeclaration": 3096, + "src": "768:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -258,48 +270,47 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2814, + "id": 3111, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "658:11:23", + "referencedDeclaration": 3098, + "src": "781:11:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "645:24:23", + "src": "768:24:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2816, + "id": 3113, "nodeType": "ExpressionStatement", - "src": "645:24:23" + "src": "768:24:24" } ] }, "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.", - "id": 2818, + "id": 3115, "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, + "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2804, + "id": 3099, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2803, + "id": 3098, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 2818, - "src": "520:19:23", + "scope": 3115, + "src": "634:19:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -307,10 +318,11 @@ "typeString": "address" }, "typeName": { - "id": 2802, + "id": 3097, "name": "address", "nodeType": "ElementaryTypeName", - "src": "520:7:23", + "src": "634:7:24", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -320,256 +332,87 @@ "visibility": "internal" } ], - "src": "519:21:23" + "src": "633:21:24" }, - "payable": false, "returnParameters": { - "id": 2805, + "id": 3100, "nodeType": "ParameterList", "parameters": [], - "src": "560:0:23" + "src": "674:0:24" }, - "scope": 2840, - "src": "508:168:23", + "scope": 3121, + "src": "622:177:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2822, + "id": 3119, "nodeType": "Block", - "src": "826:470:23", + "src": "949:470:24", "statements": [ { "externalReferences": [], - "id": 2821, + "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": "900:396:23" + "src": "1023:396:24" } ] }, "documentation": "@dev Fallback function forwards all transactions and returns all received return data.", - "id": 2823, + "id": 3120, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "fallback", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2819, + "id": 3116, "nodeType": "ParameterList", "parameters": [], - "src": "786:2:23" + "src": "909:2:24" }, - "payable": true, "returnParameters": { - "id": 2820, + "id": 3117, "nodeType": "ParameterList", "parameters": [], - "src": "826:0:23" + "src": "949:0:24" }, - "scope": 2840, - "src": "777:519:23", + "scope": 3121, + "src": "900:519:24", "stateMutability": "payable", "superFunction": null, "visibility": "external" - }, - { - "body": { - "id": 2830, - "nodeType": "Block", - "src": "1386:34:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2828, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2801, - "src": "1403:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2827, - "id": 2829, - "nodeType": "Return", - "src": "1396:17:23" - } - ] - }, - "documentation": null, - "id": 2831, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "implementation", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2824, - "nodeType": "ParameterList", - "parameters": [], - "src": "1325:2:23" - }, - "payable": false, - "returnParameters": { - "id": 2827, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2826, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2831, - "src": "1373:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1373:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1372:9:23" - }, - "scope": 2840, - "src": "1302:118:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2838, - "nodeType": "Block", - "src": "1505:25:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2836, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1522:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "functionReturnParameters": 2835, - "id": 2837, - "nodeType": "Return", - "src": "1515:8:23" - } - ] - }, - "documentation": null, - "id": 2839, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "proxyType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2832, - "nodeType": "ParameterList", - "parameters": [], - "src": "1444:2:23" - }, - "payable": false, - "returnParameters": { - "id": 2835, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2834, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2839, - "src": "1492:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2833, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1492:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1491:9:23" - }, - "scope": 2840, - "src": "1426:104:23", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" } ], - "scope": 2841, - "src": "190:1342:23" + "scope": 3122, + "src": "190:1231:24" } ], - "src": "0:1533:23" + "src": "0:1422:24" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", "exportedSymbols": { "Proxy": [ - 2840 + 3121 ] }, - "id": 2841, + "id": 3122, "nodeType": "SourceUnit", "nodes": [ { - "id": 2799, + "id": 3094, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:23" + "src": "0:23:24" }, { "baseContracts": [], @@ -577,20 +420,20 @@ "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": 2840, + "id": 3121, "linearizedBaseContracts": [ - 2840 + 3121 ], "name": "Proxy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2801, + "id": 3096, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 2840, - "src": "363:18:23", + "scope": 3121, + "src": "468:27:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -598,10 +441,11 @@ "typeString": "address" }, "typeName": { - "id": 2800, + "id": 3095, "name": "address", "nodeType": "ElementaryTypeName", - "src": "363:7:23", + "src": "468:7:24", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -612,9 +456,9 @@ }, { "body": { - "id": 2817, + "id": 3114, "nodeType": "Block", - "src": "560:116:23", + "src": "674:125:24", "statements": [ { "expression": { @@ -626,19 +470,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2809, + "id": 3106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2807, + "id": 3102, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "578:11:23", + "referencedDeclaration": 3098, + "src": "692:11:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -648,23 +492,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2808, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "593:1:23", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "707:10:24", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "578:16:23", + "src": "692:25:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -673,14 +555,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 2810, + "id": 3107, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "596:38:23", + "src": "719:38:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", @@ -700,21 +582,21 @@ "typeString": "literal_string \"Invalid master copy address provided\"" } ], - "id": 2806, + "id": 3101, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "570:7:23", + "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": 2811, + "id": 3108, "isConstant": false, "isLValue": false, "isPure": false, @@ -722,32 +604,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "570:65:23", + "src": "684:74:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2812, + "id": 3109, "nodeType": "ExpressionStatement", - "src": "570:65:23" + "src": "684:74:24" }, { "expression": { "argumentTypes": null, - "id": 2815, + "id": 3112, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2813, + "id": 3110, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2801, - "src": "645:10:23", + "referencedDeclaration": 3096, + "src": "768:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -757,48 +639,47 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2814, + "id": 3111, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "658:11:23", + "referencedDeclaration": 3098, + "src": "781:11:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "645:24:23", + "src": "768:24:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2816, + "id": 3113, "nodeType": "ExpressionStatement", - "src": "645:24:23" + "src": "768:24:24" } ] }, "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.", - "id": 2818, + "id": 3115, "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, + "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2804, + "id": 3099, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2803, + "id": 3098, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 2818, - "src": "520:19:23", + "scope": 3115, + "src": "634:19:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -806,10 +687,11 @@ "typeString": "address" }, "typeName": { - "id": 2802, + "id": 3097, "name": "address", "nodeType": "ElementaryTypeName", - "src": "520:7:23", + "src": "634:7:24", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -819,242 +701,72 @@ "visibility": "internal" } ], - "src": "519:21:23" + "src": "633:21:24" }, - "payable": false, "returnParameters": { - "id": 2805, + "id": 3100, "nodeType": "ParameterList", "parameters": [], - "src": "560:0:23" + "src": "674:0:24" }, - "scope": 2840, - "src": "508:168:23", + "scope": 3121, + "src": "622:177:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2822, + "id": 3119, "nodeType": "Block", - "src": "826:470:23", + "src": "949:470:24", "statements": [ { "externalReferences": [], - "id": 2821, + "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": "900:396:23" + "src": "1023:396:24" } ] }, "documentation": "@dev Fallback function forwards all transactions and returns all received return data.", - "id": 2823, + "id": 3120, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "fallback", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2819, + "id": 3116, "nodeType": "ParameterList", "parameters": [], - "src": "786:2:23" + "src": "909:2:24" }, - "payable": true, "returnParameters": { - "id": 2820, + "id": 3117, "nodeType": "ParameterList", "parameters": [], - "src": "826:0:23" + "src": "949:0:24" }, - "scope": 2840, - "src": "777:519:23", + "scope": 3121, + "src": "900:519:24", "stateMutability": "payable", "superFunction": null, "visibility": "external" - }, - { - "body": { - "id": 2830, - "nodeType": "Block", - "src": "1386:34:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2828, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2801, - "src": "1403:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2827, - "id": 2829, - "nodeType": "Return", - "src": "1396:17:23" - } - ] - }, - "documentation": null, - "id": 2831, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "implementation", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2824, - "nodeType": "ParameterList", - "parameters": [], - "src": "1325:2:23" - }, - "payable": false, - "returnParameters": { - "id": 2827, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2826, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2831, - "src": "1373:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1373:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1372:9:23" - }, - "scope": 2840, - "src": "1302:118:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2838, - "nodeType": "Block", - "src": "1505:25:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2836, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1522:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "functionReturnParameters": 2835, - "id": 2837, - "nodeType": "Return", - "src": "1515:8:23" - } - ] - }, - "documentation": null, - "id": 2839, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "proxyType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2832, - "nodeType": "ParameterList", - "parameters": [], - "src": "1444:2:23" - }, - "payable": false, - "returnParameters": { - "id": 2835, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2834, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2839, - "src": "1492:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2833, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1492:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1491:9:23" - }, - "scope": 2840, - "src": "1426:104:23", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" } ], - "scope": 2841, - "src": "190:1342:23" + "scope": 3122, + "src": "190:1231:24" } ], - "src": "0:1533:23" + "src": "0:1422:24" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.946Z" + "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 index 5304fe52..2dbbec0f 100644 --- a/safe-contracts/build/contracts/ProxyFactory.json +++ b/safe-contracts/build/contracts/ProxyFactory.json @@ -35,56 +35,112 @@ "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": "0x608060405234801561001057600080fd5b506104dd806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806361b69abd14610046575b600080fd5b34801561005257600080fd5b506100cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061010f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008261011a6101fe565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801561016c573d6000803e3d6000fd5b5090506000825111156101955760008060008451602086016000865af1141561019457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b6040516102a38061020f833901905600608060405234801561001057600080fd5b506040516020806102a38339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff16141515156100e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806101386000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820aeb00387246db55c17338bd7ef9b5b2e6db9a2a81ab640f7b12e1488be97fe9f0029a165627a7a72305820c4ef6f2e193e86bdff50d07c71b811741acb9e772138cc86bd3a020d8cb1581d0029", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806361b69abd14610046575b600080fd5b34801561005257600080fd5b506100cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061010f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008261011a6101fe565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801561016c573d6000803e3d6000fd5b5090506000825111156101955760008060008451602086016000865af1141561019457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b6040516102a38061020f833901905600608060405234801561001057600080fd5b506040516020806102a38339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff16141515156100e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806101386000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820aeb00387246db55c17338bd7ef9b5b2e6db9a2a81ab640f7b12e1488be97fe9f0029a165627a7a72305820c4ef6f2e193e86bdff50d07c71b811741acb9e772138cc86bd3a020d8cb1581d0029", - "sourceMap": "225:725:24:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:725:24;;;;;;;", - "deployedSourceMap": "225:725:24:-;;;;;;;;;;;;;;;;;;;;;;;;532:416;;8:9:-1;5:2;;;30:1;27;20:12;5:2;532:416:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;617:11;662:10;652:21;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;652:21:24;644:29;;701:1;687:4;:11;:15;683:237;;;874:1;870;867;860:4;854:11;847:4;841;837:15;834:1;827:5;822:3;817:55;814:62;811:2;;;889:1;886;879:12;811:2;793:114;921:20;935:5;921:20;;;;;;;;;;;;;;;;;;;;;;532:416;;;;:::o;225:725::-;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.24;\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 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", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/ProxyFactory.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/ProxyFactory.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/ProxyFactory.sol", "exportedSymbols": { "ProxyFactory": [ - 2875 + 3226 ] }, - "id": 2876, + "id": 3227, "nodeType": "SourceUnit", "nodes": [ { - "id": 2842, + "id": 3123, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".3" ], "nodeType": "PragmaDirective", - "src": "0:23:24" + "src": "0:23:25" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", "file": "./Proxy.sol", - "id": 2843, + "id": 3124, "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 2841, - "src": "24:21:24", + "scope": 3227, + "sourceUnit": 3122, + "src": "24:21:25", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [ - 2840 + 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": 2875, + "id": 3226, "linearizedBaseContracts": [ - 2875 + 3226 ], "name": "ProxyFactory", "nodeType": "ContractDefinition", @@ -92,36 +148,36 @@ { "anonymous": false, "documentation": null, - "id": 2847, + "id": 3128, "name": "ProxyCreation", "nodeType": "EventDefinition", "parameters": { - "id": 2846, + "id": 3127, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2845, + "id": 3126, "indexed": false, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "274:11:24", + "scope": 3128, + "src": "274:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 2844, + "id": 3125, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "274:5:24", + "referencedDeclaration": 3121, + "src": "274:5:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } }, @@ -129,34 +185,34 @@ "visibility": "internal" } ], - "src": "273:13:24" + "src": "273:13:25" }, - "src": "254:33:24" + "src": "254:33:25" }, { "body": { - "id": 2873, + "id": 3154, "nodeType": "Block", - "src": "634:314:24", + "src": "641:314:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 2861, + "id": 3142, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2856, + "id": 3137, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2854, - "src": "644:5:24", + "referencedDeclaration": 3135, + "src": "651:5:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } }, @@ -167,12 +223,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2859, + "id": 3140, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2849, - "src": "662:10:24", + "referencedDeclaration": 3130, + "src": "669:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -186,31 +242,31 @@ "typeString": "address" } ], - "id": 2858, + "id": 3139, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "652:9:24", + "src": "659:9:25", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$2840_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$3121_$", "typeString": "function (address) returns (contract Proxy)" }, "typeName": { "contractScope": null, - "id": 2857, + "id": 3138, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "656:5:24", + "referencedDeclaration": 3121, + "src": "663:5:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } } }, - "id": 2860, + "id": 3141, "isConstant": false, "isLValue": false, "isPure": false, @@ -218,21 +274,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "652:21:24", + "src": "659:21:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } }, - "src": "644:29:24", + "src": "651:29:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } }, - "id": 2862, + "id": 3143, "nodeType": "ExpressionStatement", - "src": "644:29:24" + "src": "651:29:25" }, { "condition": { @@ -241,7 +297,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2866, + "id": 3147, "isConstant": false, "isLValue": false, "isPure": false, @@ -250,18 +306,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2863, + "id": 3144, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2851, - "src": "687:4:24", + "referencedDeclaration": 3132, + "src": "694:4:25", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 2864, + "id": 3145, "isConstant": false, "isLValue": false, "isPure": false, @@ -269,7 +325,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "687:11:24", + "src": "694:11:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -280,14 +336,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2865, + "id": 3146, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "701:1:24", + "src": "708:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -295,50 +351,50 @@ }, "value": "0" }, - "src": "687:15:24", + "src": "694:15:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2868, + "id": 3149, "nodeType": "IfStatement", - "src": "683:237:24", + "src": "690:237:25", "trueBody": { "externalReferences": [ { "data": { - "declaration": 2851, + "declaration": 3132, "isOffset": false, "isSlot": false, - "src": "860:4:24", + "src": "867:4:25", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 3132, + "isOffset": false, + "isSlot": false, + "src": "848:4:25", "valueSize": 1 } }, { "proxy": { - "declaration": 2854, + "declaration": 3135, "isOffset": false, "isSlot": false, - "src": "827:5:24", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2851, - "isOffset": false, - "isSlot": false, - "src": "841:4:24", + "src": "834:5:25", "valueSize": 1 } } ], - "id": 2867, + "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": "784:136:24" + "src": "791:136:25" } }, { @@ -347,14 +403,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2870, + "id": 3151, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2854, - "src": "935:5:24", + "referencedDeclaration": 3135, + "src": "942:5:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } } @@ -362,22 +418,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } ], - "id": 2869, + "id": 3150, "name": "ProxyCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2847, - "src": "921:13:24", + "referencedDeclaration": 3128, + "src": "928:13:25", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$2840_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$3121_$returns$__$", "typeString": "function (contract Proxy)" } }, - "id": 2871, + "id": 3152, "isConstant": false, "isLValue": false, "isPure": false, @@ -385,37 +441,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "921:20:24", + "src": "928:20:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2872, + "id": 3153, "nodeType": "EmitStatement", - "src": "916:25:24" + "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": 2874, + "id": 3155, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "createProxy", "nodeType": "FunctionDefinition", "parameters": { - "id": 2852, + "id": 3133, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2849, + "id": 3130, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 2874, - "src": "553:18:24", + "scope": 3155, + "src": "553:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -423,10 +478,11 @@ "typeString": "address" }, "typeName": { - "id": 2848, + "id": 3129, "name": "address", "nodeType": "ElementaryTypeName", - "src": "553:7:24", + "src": "553:7:25", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -437,22 +493,22 @@ }, { "constant": false, - "id": 2851, + "id": 3132, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2874, - "src": "573:10:24", + "scope": 3155, + "src": "573:17:25", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2850, + "id": 3131, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "573:5:24", + "src": "573:5:25", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -462,35 +518,34 @@ "visibility": "internal" } ], - "src": "552:32:24" + "src": "552:39:25" }, - "payable": false, "returnParameters": { - "id": 2855, + "id": 3136, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2854, + "id": 3135, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 2874, - "src": "617:11:24", + "scope": 3155, + "src": "624:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 2853, + "id": 3134, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "617:5:24", + "referencedDeclaration": 3121, + "src": "624:5:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } }, @@ -498,63 +553,1071 @@ "visibility": "internal" } ], - "src": "616:13:24" + "src": "623:13:25" }, - "scope": 2875, - "src": "532:416:24", + "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": 2876, - "src": "225:725:24" + "scope": 3227, + "src": "225:2576:25" } ], - "src": "0:951:24" + "src": "0:2802:25" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/ProxyFactory.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/ProxyFactory.sol", "exportedSymbols": { "ProxyFactory": [ - 2875 + 3226 ] }, - "id": 2876, + "id": 3227, "nodeType": "SourceUnit", "nodes": [ { - "id": 2842, + "id": 3123, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".3" ], "nodeType": "PragmaDirective", - "src": "0:23:24" + "src": "0:23:25" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", "file": "./Proxy.sol", - "id": 2843, + "id": 3124, "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 2841, - "src": "24:21:24", + "scope": 3227, + "sourceUnit": 3122, + "src": "24:21:25", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [ - 2840 + 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": 2875, + "id": 3226, "linearizedBaseContracts": [ - 2875 + 3226 ], "name": "ProxyFactory", "nodeType": "ContractDefinition", @@ -562,36 +1625,36 @@ { "anonymous": false, "documentation": null, - "id": 2847, + "id": 3128, "name": "ProxyCreation", "nodeType": "EventDefinition", "parameters": { - "id": 2846, + "id": 3127, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2845, + "id": 3126, "indexed": false, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "274:11:24", + "scope": 3128, + "src": "274:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 2844, + "id": 3125, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "274:5:24", + "referencedDeclaration": 3121, + "src": "274:5:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } }, @@ -599,34 +1662,34 @@ "visibility": "internal" } ], - "src": "273:13:24" + "src": "273:13:25" }, - "src": "254:33:24" + "src": "254:33:25" }, { "body": { - "id": 2873, + "id": 3154, "nodeType": "Block", - "src": "634:314:24", + "src": "641:314:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 2861, + "id": 3142, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2856, + "id": 3137, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2854, - "src": "644:5:24", + "referencedDeclaration": 3135, + "src": "651:5:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } }, @@ -637,12 +1700,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2859, + "id": 3140, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2849, - "src": "662:10:24", + "referencedDeclaration": 3130, + "src": "669:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -656,31 +1719,31 @@ "typeString": "address" } ], - "id": 2858, + "id": 3139, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "652:9:24", + "src": "659:9:25", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$2840_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$3121_$", "typeString": "function (address) returns (contract Proxy)" }, "typeName": { "contractScope": null, - "id": 2857, + "id": 3138, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "656:5:24", + "referencedDeclaration": 3121, + "src": "663:5:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } } }, - "id": 2860, + "id": 3141, "isConstant": false, "isLValue": false, "isPure": false, @@ -688,21 +1751,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "652:21:24", + "src": "659:21:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } }, - "src": "644:29:24", + "src": "651:29:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } }, - "id": 2862, + "id": 3143, "nodeType": "ExpressionStatement", - "src": "644:29:24" + "src": "651:29:25" }, { "condition": { @@ -711,7 +1774,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2866, + "id": 3147, "isConstant": false, "isLValue": false, "isPure": false, @@ -720,18 +1783,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2863, + "id": 3144, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2851, - "src": "687:4:24", + "referencedDeclaration": 3132, + "src": "694:4:25", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 2864, + "id": 3145, "isConstant": false, "isLValue": false, "isPure": false, @@ -739,7 +1802,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "687:11:24", + "src": "694:11:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -750,14 +1813,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2865, + "id": 3146, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "701:1:24", + "src": "708:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -765,50 +1828,50 @@ }, "value": "0" }, - "src": "687:15:24", + "src": "694:15:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2868, + "id": 3149, "nodeType": "IfStatement", - "src": "683:237:24", + "src": "690:237:25", "trueBody": { "externalReferences": [ { "data": { - "declaration": 2851, + "declaration": 3132, "isOffset": false, "isSlot": false, - "src": "860:4:24", + "src": "867:4:25", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 3132, + "isOffset": false, + "isSlot": false, + "src": "848:4:25", "valueSize": 1 } }, { "proxy": { - "declaration": 2854, + "declaration": 3135, "isOffset": false, "isSlot": false, - "src": "827:5:24", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2851, - "isOffset": false, - "isSlot": false, - "src": "841:4:24", + "src": "834:5:25", "valueSize": 1 } } ], - "id": 2867, + "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": "784:136:24" + "src": "791:136:25" } }, { @@ -817,14 +1880,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2870, + "id": 3151, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2854, - "src": "935:5:24", + "referencedDeclaration": 3135, + "src": "942:5:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } } @@ -832,22 +1895,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } ], - "id": 2869, + "id": 3150, "name": "ProxyCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2847, - "src": "921:13:24", + "referencedDeclaration": 3128, + "src": "928:13:25", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$2840_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$3121_$returns$__$", "typeString": "function (contract Proxy)" } }, - "id": 2871, + "id": 3152, "isConstant": false, "isLValue": false, "isPure": false, @@ -855,37 +1918,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "921:20:24", + "src": "928:20:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2872, + "id": 3153, "nodeType": "EmitStatement", - "src": "916:25:24" + "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": 2874, + "id": 3155, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "createProxy", "nodeType": "FunctionDefinition", "parameters": { - "id": 2852, + "id": 3133, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2849, + "id": 3130, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 2874, - "src": "553:18:24", + "scope": 3155, + "src": "553:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -893,10 +1955,11 @@ "typeString": "address" }, "typeName": { - "id": 2848, + "id": 3129, "name": "address", "nodeType": "ElementaryTypeName", - "src": "553:7:24", + "src": "553:7:25", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -907,22 +1970,22 @@ }, { "constant": false, - "id": 2851, + "id": 3132, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2874, - "src": "573:10:24", + "scope": 3155, + "src": "573:17:25", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2850, + "id": 3131, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "573:5:24", + "src": "573:5:25", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -932,35 +1995,34 @@ "visibility": "internal" } ], - "src": "552:32:24" + "src": "552:39:25" }, - "payable": false, "returnParameters": { - "id": 2855, + "id": 3136, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2854, + "id": 3135, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 2874, - "src": "617:11:24", + "scope": 3155, + "src": "624:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 2853, + "id": 3134, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "617:5:24", + "referencedDeclaration": 3121, + "src": "624:5:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", + "typeIdentifier": "t_contract$_Proxy_$3121", "typeString": "contract Proxy" } }, @@ -968,39 +2030,1058 @@ "visibility": "internal" } ], - "src": "616:13:24" + "src": "623:13:25" }, - "scope": 2875, - "src": "532:416:24", + "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": 2876, - "src": "225:725:24" + "scope": 3227, + "src": "225:2576:25" } ], - "src": "0:951:24" + "src": "0:2802:25" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": { - "4": { - "events": {}, + "1": { "links": {}, - "address": "0xc514d1c8f68faab2361892eb36b57c00e26f72b1", - "transactionHash": "0x8c31e4ba7f91582061f7f0cb58e696df5b79ec4b08871f430842eace5295ffa3" + "events": {}, + "address": "0x12302fE9c02ff50939BaAaaf415fc226C078613C", + "updated_at": 1555073253712 }, - "1538739975997": { - "events": {}, + "4": { "links": {}, - "address": "0xcfeb869f69431e42cdb54a4f4f105c19c080a601", - "transactionHash": "0x460ef2a3ad8baae30860ec20978d3c7f8b2300eac8694d9a880a30096a69f42b" + "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.0", - "updatedAt": "2018-10-05T14:43:41.422Z" + "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 new file mode 100644 index 00000000..ada32960 --- /dev/null +++ b/safe-contracts/build/contracts/SafeMath.json @@ -0,0 +1,3279 @@ +{ + "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 index e1c2f779..f8ca2dad 100644 --- a/safe-contracts/build/contracts/SecuredTokenTransfer.json +++ b/safe-contracts/build/contracts/SecuredTokenTransfer.json @@ -1,28 +1,29 @@ { "contractName": "SecuredTokenTransfer", "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820ba27992b3b19c83b563b2634ef4e6e4b21311676e3d2a13b83cfd34834dfb8510029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820ba27992b3b19c83b563b2634ef4e6e4b21311676e3d2a13b83cfd34834dfb8510029", + "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.4.24;\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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", "exportedSymbols": { "SecuredTokenTransfer": [ - 1718 + 1864 ] }, - "id": 1719, + "id": 1865, "nodeType": "SourceUnit", "nodes": [ { - "id": 1695, + "id": 1841, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:10" @@ -33,30 +34,30 @@ "contractKind": "contract", "documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1718, + "id": 1864, "linearizedBaseContracts": [ - 1718 + 1864 ], "name": "SecuredTokenTransfer", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1716, + "id": 1862, "nodeType": "Block", "src": "590:592:10", "statements": [ { "assignments": [ - 1707 + 1853 ], "declarations": [ { "constant": false, - "id": 1707, + "id": 1853, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1717, + "scope": 1862, "src": "600:17:10", "stateVariable": false, "storageLocation": "memory", @@ -65,7 +66,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1706, + "id": 1852, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "600:5:10", @@ -78,14 +79,14 @@ "visibility": "internal" } ], - "id": 1714, + "id": 1860, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 1710, + "id": 1856, "isConstant": false, "isLValue": false, "isPure": true, @@ -102,11 +103,11 @@ }, { "argumentTypes": null, - "id": 1711, + "id": 1857, "name": "receiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1699, + "referencedDeclaration": 1845, "src": "673:8:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -115,11 +116,11 @@ }, { "argumentTypes": null, - "id": 1712, + "id": 1858, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1701, + "referencedDeclaration": 1847, "src": "683:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -144,18 +145,18 @@ ], "expression": { "argumentTypes": null, - "id": 1708, + "id": 1854, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, + "referencedDeclaration": 4353, "src": "620:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 1709, + "id": 1855, "isConstant": false, "isLValue": false, "isPure": true, @@ -169,7 +170,7 @@ "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 1713, + "id": 1859, "isConstant": false, "isLValue": false, "isPure": false, @@ -190,34 +191,25 @@ "externalReferences": [ { "transferred": { - "declaration": 1704, + "declaration": 1850, "isOffset": false, "isSlot": false, - "src": "1061:11:10", + "src": "1148:11:10", "valueSize": 1 } }, { "data": { - "declaration": 1707, + "declaration": 1853, "isOffset": false, "isSlot": false, "src": "857:4:10", "valueSize": 1 } }, - { - "token": { - "declaration": 1697, - "isOffset": false, - "isSlot": false, - "src": "824:5:10", - "valueSize": 1 - } - }, { "data": { - "declaration": 1707, + "declaration": 1853, "isOffset": false, "isSlot": false, "src": "838:4:10", @@ -226,7 +218,7 @@ }, { "transferred": { - "declaration": 1704, + "declaration": 1850, "isOffset": false, "isSlot": false, "src": "1012:11:10", @@ -235,15 +227,24 @@ }, { "transferred": { - "declaration": 1704, + "declaration": 1850, "isOffset": false, "isSlot": false, - "src": "1148:11:10", + "src": "1061:11:10", + "valueSize": 1 + } + }, + { + "token": { + "declaration": 1843, + "isOffset": false, + "isSlot": false, + "src": "824:5:10", "valueSize": 1 } } ], - "id": 1715, + "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" @@ -251,23 +252,22 @@ ] }, "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": 1717, + "id": 1863, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "transferToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 1702, + "id": 1848, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1697, + "id": 1843, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1717, + "scope": 1863, "src": "463:13:10", "stateVariable": false, "storageLocation": "default", @@ -276,10 +276,11 @@ "typeString": "address" }, "typeName": { - "id": 1696, + "id": 1842, "name": "address", "nodeType": "ElementaryTypeName", "src": "463:7:10", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -290,10 +291,10 @@ }, { "constant": false, - "id": 1699, + "id": 1845, "name": "receiver", "nodeType": "VariableDeclaration", - "scope": 1717, + "scope": 1863, "src": "487:16:10", "stateVariable": false, "storageLocation": "default", @@ -302,10 +303,11 @@ "typeString": "address" }, "typeName": { - "id": 1698, + "id": 1844, "name": "address", "nodeType": "ElementaryTypeName", "src": "487:7:10", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -316,10 +318,10 @@ }, { "constant": false, - "id": 1701, + "id": 1847, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1717, + "scope": 1863, "src": "513:14:10", "stateVariable": false, "storageLocation": "default", @@ -328,7 +330,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1700, + "id": 1846, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "513:7:10", @@ -343,17 +345,16 @@ ], "src": "453:80:10" }, - "payable": false, "returnParameters": { - "id": 1705, + "id": 1851, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1704, + "id": 1850, "name": "transferred", "nodeType": "VariableDeclaration", - "scope": 1717, + "scope": 1863, "src": "568:16:10", "stateVariable": false, "storageLocation": "default", @@ -362,7 +363,7 @@ "typeString": "bool" }, "typeName": { - "id": 1703, + "id": 1849, "name": "bool", "nodeType": "ElementaryTypeName", "src": "568:4:10", @@ -377,35 +378,36 @@ ], "src": "567:18:10" }, - "scope": 1718, + "scope": 1864, "src": "430:752:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 1719, + "scope": 1865, "src": "133:1051:10" } ], "src": "0:1185:10" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", "exportedSymbols": { "SecuredTokenTransfer": [ - 1718 + 1864 ] }, - "id": 1719, + "id": 1865, "nodeType": "SourceUnit", "nodes": [ { - "id": 1695, + "id": 1841, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:10" @@ -416,30 +418,30 @@ "contractKind": "contract", "documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1718, + "id": 1864, "linearizedBaseContracts": [ - 1718 + 1864 ], "name": "SecuredTokenTransfer", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1716, + "id": 1862, "nodeType": "Block", "src": "590:592:10", "statements": [ { "assignments": [ - 1707 + 1853 ], "declarations": [ { "constant": false, - "id": 1707, + "id": 1853, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1717, + "scope": 1862, "src": "600:17:10", "stateVariable": false, "storageLocation": "memory", @@ -448,7 +450,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1706, + "id": 1852, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "600:5:10", @@ -461,14 +463,14 @@ "visibility": "internal" } ], - "id": 1714, + "id": 1860, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 1710, + "id": 1856, "isConstant": false, "isLValue": false, "isPure": true, @@ -485,11 +487,11 @@ }, { "argumentTypes": null, - "id": 1711, + "id": 1857, "name": "receiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1699, + "referencedDeclaration": 1845, "src": "673:8:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -498,11 +500,11 @@ }, { "argumentTypes": null, - "id": 1712, + "id": 1858, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1701, + "referencedDeclaration": 1847, "src": "683:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -527,18 +529,18 @@ ], "expression": { "argumentTypes": null, - "id": 1708, + "id": 1854, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, + "referencedDeclaration": 4353, "src": "620:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 1709, + "id": 1855, "isConstant": false, "isLValue": false, "isPure": true, @@ -552,7 +554,7 @@ "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 1713, + "id": 1859, "isConstant": false, "isLValue": false, "isPure": false, @@ -573,34 +575,25 @@ "externalReferences": [ { "transferred": { - "declaration": 1704, + "declaration": 1850, "isOffset": false, "isSlot": false, - "src": "1061:11:10", + "src": "1148:11:10", "valueSize": 1 } }, { "data": { - "declaration": 1707, + "declaration": 1853, "isOffset": false, "isSlot": false, "src": "857:4:10", "valueSize": 1 } }, - { - "token": { - "declaration": 1697, - "isOffset": false, - "isSlot": false, - "src": "824:5:10", - "valueSize": 1 - } - }, { "data": { - "declaration": 1707, + "declaration": 1853, "isOffset": false, "isSlot": false, "src": "838:4:10", @@ -609,7 +602,7 @@ }, { "transferred": { - "declaration": 1704, + "declaration": 1850, "isOffset": false, "isSlot": false, "src": "1012:11:10", @@ -618,15 +611,24 @@ }, { "transferred": { - "declaration": 1704, + "declaration": 1850, "isOffset": false, "isSlot": false, - "src": "1148:11:10", + "src": "1061:11:10", + "valueSize": 1 + } + }, + { + "token": { + "declaration": 1843, + "isOffset": false, + "isSlot": false, + "src": "824:5:10", "valueSize": 1 } } ], - "id": 1715, + "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" @@ -634,23 +636,22 @@ ] }, "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": 1717, + "id": 1863, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "transferToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 1702, + "id": 1848, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1697, + "id": 1843, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1717, + "scope": 1863, "src": "463:13:10", "stateVariable": false, "storageLocation": "default", @@ -659,10 +660,11 @@ "typeString": "address" }, "typeName": { - "id": 1696, + "id": 1842, "name": "address", "nodeType": "ElementaryTypeName", "src": "463:7:10", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -673,10 +675,10 @@ }, { "constant": false, - "id": 1699, + "id": 1845, "name": "receiver", "nodeType": "VariableDeclaration", - "scope": 1717, + "scope": 1863, "src": "487:16:10", "stateVariable": false, "storageLocation": "default", @@ -685,10 +687,11 @@ "typeString": "address" }, "typeName": { - "id": 1698, + "id": 1844, "name": "address", "nodeType": "ElementaryTypeName", "src": "487:7:10", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -699,10 +702,10 @@ }, { "constant": false, - "id": 1701, + "id": 1847, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1717, + "scope": 1863, "src": "513:14:10", "stateVariable": false, "storageLocation": "default", @@ -711,7 +714,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1700, + "id": 1846, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "513:7:10", @@ -726,17 +729,16 @@ ], "src": "453:80:10" }, - "payable": false, "returnParameters": { - "id": 1705, + "id": 1851, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1704, + "id": 1850, "name": "transferred", "nodeType": "VariableDeclaration", - "scope": 1717, + "scope": 1863, "src": "568:16:10", "stateVariable": false, "storageLocation": "default", @@ -745,7 +747,7 @@ "typeString": "bool" }, "typeName": { - "id": 1703, + "id": 1849, "name": "bool", "nodeType": "ElementaryTypeName", "src": "568:4:10", @@ -760,14 +762,14 @@ ], "src": "567:18:10" }, - "scope": 1718, + "scope": 1864, "src": "430:752:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 1719, + "scope": 1865, "src": "133:1051:10" } ], @@ -775,9 +777,9 @@ }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.937Z" + "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 index daaf61e9..67e94e47 100644 --- a/safe-contracts/build/contracts/SelfAuthorized.json +++ b/safe-contracts/build/contracts/SelfAuthorized.json @@ -1,28 +1,29 @@ { "contractName": "SelfAuthorized", "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a7230582089be6830aa63b2ce4480c1565e02c1d4e7d28bdf01f3f1cfbca1af4fc2fd06f50029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a7230582089be6830aa63b2ce4480c1565e02c1d4e7d28bdf01f3f1cfbca1af4fc2fd06f50029", + "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.4.24;\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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", "exportedSymbols": { "SelfAuthorized": [ - 1735 + 1881 ] }, - "id": 1736, + "id": 1882, "nodeType": "SourceUnit", "nodes": [ { - "id": 1720, + "id": 1866, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:11" @@ -33,16 +34,16 @@ "contractKind": "contract", "documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1735, + "id": 1881, "linearizedBaseContracts": [ - 1735 + 1881 ], "name": "SelfAuthorized", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1733, + "id": 1879, "nodeType": "Block", "src": "204:112:11", "statements": [ @@ -56,7 +57,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1728, + "id": 1874, "isConstant": false, "isLValue": false, "isPure": false, @@ -65,18 +66,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1723, + "id": 1869, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, + "referencedDeclaration": 4366, "src": "222:3:11", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1724, + "id": 1870, "isConstant": false, "isLValue": false, "isPure": false, @@ -86,8 +87,8 @@ "referencedDeclaration": null, "src": "222:10:11", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "BinaryOperation", @@ -97,14 +98,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1726, + "id": 1872, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4028, + "referencedDeclaration": 4380, "src": "244:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", + "typeIdentifier": "t_contract$_SelfAuthorized_$1881", "typeString": "contract SelfAuthorized" } } @@ -112,11 +113,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", + "typeIdentifier": "t_contract$_SelfAuthorized_$1881", "typeString": "contract SelfAuthorized" } ], - "id": 1725, + "id": 1871, "isConstant": false, "isLValue": false, "isPure": true, @@ -129,7 +130,7 @@ }, "typeName": "address" }, - "id": 1727, + "id": 1873, "isConstant": false, "isLValue": false, "isPure": false, @@ -152,7 +153,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374", - "id": 1729, + "id": 1875, "isConstant": false, "isLValue": false, "isPure": true, @@ -179,21 +180,21 @@ "typeString": "literal_string \"Method can only be called from this contract\"" } ], - "id": 1722, + "id": 1868, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, + "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": 1730, + "id": 1876, "isConstant": false, "isLValue": false, "isPure": false, @@ -207,23 +208,23 @@ "typeString": "tuple()" } }, - "id": 1731, + "id": 1877, "nodeType": "ExpressionStatement", "src": "214:84:11" }, { - "id": 1732, + "id": 1878, "nodeType": "PlaceholderStatement", "src": "308:1:11" } ] }, "documentation": null, - "id": 1734, + "id": 1880, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 1721, + "id": 1867, "nodeType": "ParameterList", "parameters": [], "src": "201:2:11" @@ -232,28 +233,29 @@ "visibility": "internal" } ], - "scope": 1736, + "scope": 1882, "src": "152:166:11" } ], "src": "0:319:11" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", "exportedSymbols": { "SelfAuthorized": [ - 1735 + 1881 ] }, - "id": 1736, + "id": 1882, "nodeType": "SourceUnit", "nodes": [ { - "id": 1720, + "id": 1866, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:11" @@ -264,16 +266,16 @@ "contractKind": "contract", "documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1735, + "id": 1881, "linearizedBaseContracts": [ - 1735 + 1881 ], "name": "SelfAuthorized", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1733, + "id": 1879, "nodeType": "Block", "src": "204:112:11", "statements": [ @@ -287,7 +289,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1728, + "id": 1874, "isConstant": false, "isLValue": false, "isPure": false, @@ -296,18 +298,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1723, + "id": 1869, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, + "referencedDeclaration": 4366, "src": "222:3:11", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1724, + "id": 1870, "isConstant": false, "isLValue": false, "isPure": false, @@ -317,8 +319,8 @@ "referencedDeclaration": null, "src": "222:10:11", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "BinaryOperation", @@ -328,14 +330,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1726, + "id": 1872, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4028, + "referencedDeclaration": 4380, "src": "244:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", + "typeIdentifier": "t_contract$_SelfAuthorized_$1881", "typeString": "contract SelfAuthorized" } } @@ -343,11 +345,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", + "typeIdentifier": "t_contract$_SelfAuthorized_$1881", "typeString": "contract SelfAuthorized" } ], - "id": 1725, + "id": 1871, "isConstant": false, "isLValue": false, "isPure": true, @@ -360,7 +362,7 @@ }, "typeName": "address" }, - "id": 1727, + "id": 1873, "isConstant": false, "isLValue": false, "isPure": false, @@ -383,7 +385,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374", - "id": 1729, + "id": 1875, "isConstant": false, "isLValue": false, "isPure": true, @@ -410,21 +412,21 @@ "typeString": "literal_string \"Method can only be called from this contract\"" } ], - "id": 1722, + "id": 1868, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, + "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": 1730, + "id": 1876, "isConstant": false, "isLValue": false, "isPure": false, @@ -438,23 +440,23 @@ "typeString": "tuple()" } }, - "id": 1731, + "id": 1877, "nodeType": "ExpressionStatement", "src": "214:84:11" }, { - "id": 1732, + "id": 1878, "nodeType": "PlaceholderStatement", "src": "308:1:11" } ] }, "documentation": null, - "id": 1734, + "id": 1880, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 1721, + "id": 1867, "nodeType": "ParameterList", "parameters": [], "src": "201:2:11" @@ -463,7 +465,7 @@ "visibility": "internal" } ], - "scope": 1736, + "scope": 1882, "src": "152:166:11" } ], @@ -471,9 +473,9 @@ }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.938Z" + "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 index a48372cf..c26dba84 100644 --- a/safe-contracts/build/contracts/SignatureDecoder.json +++ b/safe-contracts/build/contracts/SignatureDecoder.json @@ -1,28 +1,29 @@ { "contractName": "SignatureDecoder", "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820d9ee3caf094740365f7393d3f6ba692eb56aac36a91a228ffd64563a0a424d7e0029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820d9ee3caf094740365f7393d3f6ba692eb56aac36a91a228ffd64563a0a424d7e0029", - "sourceMap": "226:1692:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;226:1692:12;;;;;;;", - "deployedSourceMap": "226:1692:12:-;;;;;", - "source": "pragma solidity 0.4.24;\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 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 /// @param pos which signature to read\n /// @param signatures concatenated rsv signatures\n function signatureSplit(bytes 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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", "exportedSymbols": { "SignatureDecoder": [ - 1791 + 1937 ] }, - "id": 1792, + "id": 1938, "nodeType": "SourceUnit", "nodes": [ { - "id": 1737, + "id": 1883, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:12" @@ -33,29 +34,31 @@ "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": 1791, + "id": 1937, "linearizedBaseContracts": [ - 1791 + 1937 ], "name": "SignatureDecoder", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1774, + "id": 1920, "nodeType": "Block", - "src": "656:169:12", + "src": "663:169:12", "statements": [ { - "assignments": [], + "assignments": [ + 1895 + ], "declarations": [ { "constant": false, - "id": 1749, + "id": 1895, "name": "v", "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "666:7:12", + "scope": 1920, + "src": "673:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -63,10 +66,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1748, + "id": 1894, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "666:5:12", + "src": "673:5:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -76,21 +79,23 @@ "visibility": "internal" } ], - "id": 1750, + "id": 1896, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "666:7:12" + "src": "673:7:12" }, { - "assignments": [], + "assignments": [ + 1898 + ], "declarations": [ { "constant": false, - "id": 1752, + "id": 1898, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "683:9:12", + "scope": 1920, + "src": "690:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -98,10 +103,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1751, + "id": 1897, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "683:7:12", + "src": "690:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -111,21 +116,23 @@ "visibility": "internal" } ], - "id": 1753, + "id": 1899, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "683:9:12" + "src": "690:9:12" }, { - "assignments": [], + "assignments": [ + 1901 + ], "declarations": [ { "constant": false, - "id": 1755, + "id": 1901, "name": "s", "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "702:9:12", + "scope": 1920, + "src": "709:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -133,10 +140,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1754, + "id": 1900, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "702:7:12", + "src": "709:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -146,15 +153,15 @@ "visibility": "internal" } ], - "id": 1756, + "id": 1902, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "702:9:12" + "src": "709:9:12" }, { "expression": { "argumentTypes": null, - "id": 1765, + "id": 1911, "isConstant": false, "isLValue": false, "isPure": false, @@ -164,12 +171,12 @@ "components": [ { "argumentTypes": null, - "id": 1757, + "id": 1903, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1749, - "src": "722:1:12", + "referencedDeclaration": 1895, + "src": "729:1:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -177,12 +184,12 @@ }, { "argumentTypes": null, - "id": 1758, + "id": 1904, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1752, - "src": "725:1:12", + "referencedDeclaration": 1898, + "src": "732:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -190,26 +197,26 @@ }, { "argumentTypes": null, - "id": 1759, + "id": 1905, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "728:1:12", + "referencedDeclaration": 1901, + "src": "735:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 1760, + "id": 1906, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", - "src": "721:9:12", + "src": "728:9:12", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" @@ -222,12 +229,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1762, + "id": 1908, "name": "messageSignature", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1741, - "src": "748:16:12", + "referencedDeclaration": 1887, + "src": "755:16:12", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -235,12 +242,12 @@ }, { "argumentTypes": null, - "id": 1763, + "id": 1909, "name": "pos", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1743, - "src": "766:3:12", + "referencedDeclaration": 1889, + "src": "773:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -258,18 +265,18 @@ "typeString": "uint256" } ], - "id": 1761, + "id": 1907, "name": "signatureSplit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "733:14:12", + "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": 1764, + "id": 1910, "isConstant": false, "isLValue": false, "isPure": false, @@ -277,21 +284,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "733:37:12", + "src": "740:37:12", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" } }, - "src": "721:49:12", + "src": "728:49:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1766, + "id": 1912, "nodeType": "ExpressionStatement", - "src": "721:49:12" + "src": "728:49:12" }, { "expression": { @@ -299,12 +306,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1768, + "id": 1914, "name": "messageHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1739, - "src": "797:11:12", + "referencedDeclaration": 1885, + "src": "804:11:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -312,12 +319,12 @@ }, { "argumentTypes": null, - "id": 1769, + "id": 1915, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1749, - "src": "810:1:12", + "referencedDeclaration": 1895, + "src": "817:1:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -325,12 +332,12 @@ }, { "argumentTypes": null, - "id": 1770, + "id": 1916, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1752, - "src": "813:1:12", + "referencedDeclaration": 1898, + "src": "820:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -338,12 +345,12 @@ }, { "argumentTypes": null, - "id": 1771, + "id": 1917, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "816:1:12", + "referencedDeclaration": 1901, + "src": "823:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -369,18 +376,18 @@ "typeString": "bytes32" } ], - "id": 1767, + "id": 1913, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4007, - "src": "787:9:12", + "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": 1772, + "id": 1918, "isConstant": false, "isLValue": false, "isPure": false, @@ -388,37 +395,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "787:31:12", + "src": "794:31:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1747, - "id": 1773, + "functionReturnParameters": 1893, + "id": 1919, "nodeType": "Return", - "src": "780:38:12" + "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": 1775, + "id": 1921, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "recoverKey", "nodeType": "FunctionDefinition", "parameters": { - "id": 1744, + "id": 1890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1739, + "id": 1885, "name": "messageHash", "nodeType": "VariableDeclaration", - "scope": 1775, + "scope": 1921, "src": "515:19:12", "stateVariable": false, "storageLocation": "default", @@ -427,7 +433,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1738, + "id": 1884, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "515:7:12", @@ -441,19 +447,19 @@ }, { "constant": false, - "id": 1741, + "id": 1887, "name": "messageSignature", "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "545:22:12", + "scope": 1921, + "src": "545:29:12", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 1740, + "id": 1886, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "545:5:12", @@ -467,11 +473,11 @@ }, { "constant": false, - "id": 1743, + "id": 1889, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "577:11:12", + "scope": 1921, + "src": "584:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -479,10 +485,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1742, + "id": 1888, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "577:7:12", + "src": "584:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -492,20 +498,19 @@ "visibility": "internal" } ], - "src": "505:89:12" + "src": "505:96:12" }, - "payable": false, "returnParameters": { - "id": 1747, + "id": 1893, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1746, + "id": 1892, "name": "", "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "642:7:12", + "scope": 1921, + "src": "649:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -513,10 +518,11 @@ "typeString": "address" }, "typeName": { - "id": 1745, + "id": 1891, "name": "address", "nodeType": "ElementaryTypeName", - "src": "642:7:12", + "src": "649:7:12", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -526,123 +532,122 @@ "visibility": "internal" } ], - "src": "641:9:12" + "src": "648:9:12" }, - "scope": 1791, - "src": "485:340:12", + "scope": 1937, + "src": "485:347:12", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1789, + "id": 1935, "nodeType": "Block", - "src": "1139:777:12", + "src": "1364:777:12", "statements": [ { "externalReferences": [ { "r": { - "declaration": 1784, + "declaration": 1930, "isOffset": false, "isSlot": false, - "src": "1441:1:12", + "src": "1666:1:12", "valueSize": 1 } }, { "pos": { - "declaration": 1779, + "declaration": 1925, "isOffset": false, "isSlot": false, - "src": "1424:3:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1777, - "isOffset": false, - "isSlot": false, - "src": "1456:10:12", - "valueSize": 1 - } - }, - { - "s": { - "declaration": 1786, - "isOffset": false, - "isSlot": false, - "src": "1506:1:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1777, - "isOffset": false, - "isSlot": false, - "src": "1521:10:12", + "src": "1649:3:12", "valueSize": 1 } }, { "v": { - "declaration": 1782, + "declaration": 1928, "isOffset": false, "isSlot": false, - "src": "1837:1:12", + "src": "2062:1:12", + "valueSize": 1 + } + }, + { + "s": { + "declaration": 1932, + "isOffset": false, + "isSlot": false, + "src": "1731:1:12", "valueSize": 1 } }, { "signatures": { - "declaration": 1777, + "declaration": 1923, "isOffset": false, "isSlot": false, - "src": "1856:10:12", + "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": 1788, + "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": "1371:545:12" + "src": "1596:545:12" } ] }, - "documentation": "@dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`\n @param pos which signature to read\n @param signatures concatenated rsv signatures", - "id": 1790, + "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, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "signatureSplit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1780, + "id": 1926, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1777, + "id": 1923, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1026:16:12", + "scope": 1936, + "src": "1244:23:12", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 1776, + "id": 1922, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1026:5:12", + "src": "1244:5:12", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -653,11 +658,11 @@ }, { "constant": false, - "id": 1779, + "id": 1925, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1044:11:12", + "scope": 1936, + "src": "1269:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -665,10 +670,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1778, + "id": 1924, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1044:7:12", + "src": "1269:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -678,20 +683,19 @@ "visibility": "internal" } ], - "src": "1025:31:12" + "src": "1243:38:12" }, - "payable": false, "returnParameters": { - "id": 1787, + "id": 1933, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1782, + "id": 1928, "name": "v", "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1104:7:12", + "scope": 1936, + "src": "1329:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -699,10 +703,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1781, + "id": 1927, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1104:5:12", + "src": "1329:5:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -713,11 +717,11 @@ }, { "constant": false, - "id": 1784, + "id": 1930, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1113:9:12", + "scope": 1936, + "src": "1338:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -725,10 +729,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1783, + "id": 1929, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1113:7:12", + "src": "1338:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -739,11 +743,11 @@ }, { "constant": false, - "id": 1786, + "id": 1932, "name": "s", "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1124:9:12", + "scope": 1936, + "src": "1349:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -751,10 +755,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1785, + "id": 1931, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1124:7:12", + "src": "1349:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -764,37 +768,38 @@ "visibility": "internal" } ], - "src": "1103:31:12" + "src": "1328:31:12" }, - "scope": 1791, - "src": "1002:914:12", + "scope": 1937, + "src": "1220:921:12", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 1792, - "src": "226:1692:12" + "scope": 1938, + "src": "226:1917:12" } ], - "src": "0:1919:12" + "src": "0:2144:12" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", "exportedSymbols": { "SignatureDecoder": [ - 1791 + 1937 ] }, - "id": 1792, + "id": 1938, "nodeType": "SourceUnit", "nodes": [ { - "id": 1737, + "id": 1883, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", "src": "0:23:12" @@ -805,29 +810,31 @@ "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": 1791, + "id": 1937, "linearizedBaseContracts": [ - 1791 + 1937 ], "name": "SignatureDecoder", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1774, + "id": 1920, "nodeType": "Block", - "src": "656:169:12", + "src": "663:169:12", "statements": [ { - "assignments": [], + "assignments": [ + 1895 + ], "declarations": [ { "constant": false, - "id": 1749, + "id": 1895, "name": "v", "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "666:7:12", + "scope": 1920, + "src": "673:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -835,10 +842,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1748, + "id": 1894, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "666:5:12", + "src": "673:5:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -848,21 +855,23 @@ "visibility": "internal" } ], - "id": 1750, + "id": 1896, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "666:7:12" + "src": "673:7:12" }, { - "assignments": [], + "assignments": [ + 1898 + ], "declarations": [ { "constant": false, - "id": 1752, + "id": 1898, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "683:9:12", + "scope": 1920, + "src": "690:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -870,10 +879,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1751, + "id": 1897, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "683:7:12", + "src": "690:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -883,21 +892,23 @@ "visibility": "internal" } ], - "id": 1753, + "id": 1899, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "683:9:12" + "src": "690:9:12" }, { - "assignments": [], + "assignments": [ + 1901 + ], "declarations": [ { "constant": false, - "id": 1755, + "id": 1901, "name": "s", "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "702:9:12", + "scope": 1920, + "src": "709:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -905,10 +916,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1754, + "id": 1900, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "702:7:12", + "src": "709:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -918,15 +929,15 @@ "visibility": "internal" } ], - "id": 1756, + "id": 1902, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "702:9:12" + "src": "709:9:12" }, { "expression": { "argumentTypes": null, - "id": 1765, + "id": 1911, "isConstant": false, "isLValue": false, "isPure": false, @@ -936,12 +947,12 @@ "components": [ { "argumentTypes": null, - "id": 1757, + "id": 1903, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1749, - "src": "722:1:12", + "referencedDeclaration": 1895, + "src": "729:1:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -949,12 +960,12 @@ }, { "argumentTypes": null, - "id": 1758, + "id": 1904, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1752, - "src": "725:1:12", + "referencedDeclaration": 1898, + "src": "732:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -962,26 +973,26 @@ }, { "argumentTypes": null, - "id": 1759, + "id": 1905, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "728:1:12", + "referencedDeclaration": 1901, + "src": "735:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 1760, + "id": 1906, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", - "src": "721:9:12", + "src": "728:9:12", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" @@ -994,12 +1005,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1762, + "id": 1908, "name": "messageSignature", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1741, - "src": "748:16:12", + "referencedDeclaration": 1887, + "src": "755:16:12", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1007,12 +1018,12 @@ }, { "argumentTypes": null, - "id": 1763, + "id": 1909, "name": "pos", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1743, - "src": "766:3:12", + "referencedDeclaration": 1889, + "src": "773:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1030,18 +1041,18 @@ "typeString": "uint256" } ], - "id": 1761, + "id": 1907, "name": "signatureSplit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "733:14:12", + "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": 1764, + "id": 1910, "isConstant": false, "isLValue": false, "isPure": false, @@ -1049,21 +1060,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "733:37:12", + "src": "740:37:12", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" } }, - "src": "721:49:12", + "src": "728:49:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1766, + "id": 1912, "nodeType": "ExpressionStatement", - "src": "721:49:12" + "src": "728:49:12" }, { "expression": { @@ -1071,12 +1082,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1768, + "id": 1914, "name": "messageHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1739, - "src": "797:11:12", + "referencedDeclaration": 1885, + "src": "804:11:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1084,12 +1095,12 @@ }, { "argumentTypes": null, - "id": 1769, + "id": 1915, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1749, - "src": "810:1:12", + "referencedDeclaration": 1895, + "src": "817:1:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1097,12 +1108,12 @@ }, { "argumentTypes": null, - "id": 1770, + "id": 1916, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1752, - "src": "813:1:12", + "referencedDeclaration": 1898, + "src": "820:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1110,12 +1121,12 @@ }, { "argumentTypes": null, - "id": 1771, + "id": 1917, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "816:1:12", + "referencedDeclaration": 1901, + "src": "823:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1141,18 +1152,18 @@ "typeString": "bytes32" } ], - "id": 1767, + "id": 1913, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4007, - "src": "787:9:12", + "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": 1772, + "id": 1918, "isConstant": false, "isLValue": false, "isPure": false, @@ -1160,37 +1171,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "787:31:12", + "src": "794:31:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1747, - "id": 1773, + "functionReturnParameters": 1893, + "id": 1919, "nodeType": "Return", - "src": "780:38:12" + "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": 1775, + "id": 1921, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "recoverKey", "nodeType": "FunctionDefinition", "parameters": { - "id": 1744, + "id": 1890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1739, + "id": 1885, "name": "messageHash", "nodeType": "VariableDeclaration", - "scope": 1775, + "scope": 1921, "src": "515:19:12", "stateVariable": false, "storageLocation": "default", @@ -1199,7 +1209,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1738, + "id": 1884, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "515:7:12", @@ -1213,19 +1223,19 @@ }, { "constant": false, - "id": 1741, + "id": 1887, "name": "messageSignature", "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "545:22:12", + "scope": 1921, + "src": "545:29:12", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 1740, + "id": 1886, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "545:5:12", @@ -1239,11 +1249,11 @@ }, { "constant": false, - "id": 1743, + "id": 1889, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "577:11:12", + "scope": 1921, + "src": "584:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1251,10 +1261,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1742, + "id": 1888, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "577:7:12", + "src": "584:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1264,20 +1274,19 @@ "visibility": "internal" } ], - "src": "505:89:12" + "src": "505:96:12" }, - "payable": false, "returnParameters": { - "id": 1747, + "id": 1893, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1746, + "id": 1892, "name": "", "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "642:7:12", + "scope": 1921, + "src": "649:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1285,10 +1294,11 @@ "typeString": "address" }, "typeName": { - "id": 1745, + "id": 1891, "name": "address", "nodeType": "ElementaryTypeName", - "src": "642:7:12", + "src": "649:7:12", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1298,123 +1308,122 @@ "visibility": "internal" } ], - "src": "641:9:12" + "src": "648:9:12" }, - "scope": 1791, - "src": "485:340:12", + "scope": 1937, + "src": "485:347:12", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1789, + "id": 1935, "nodeType": "Block", - "src": "1139:777:12", + "src": "1364:777:12", "statements": [ { "externalReferences": [ { "r": { - "declaration": 1784, + "declaration": 1930, "isOffset": false, "isSlot": false, - "src": "1441:1:12", + "src": "1666:1:12", "valueSize": 1 } }, { "pos": { - "declaration": 1779, + "declaration": 1925, "isOffset": false, "isSlot": false, - "src": "1424:3:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1777, - "isOffset": false, - "isSlot": false, - "src": "1456:10:12", - "valueSize": 1 - } - }, - { - "s": { - "declaration": 1786, - "isOffset": false, - "isSlot": false, - "src": "1506:1:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1777, - "isOffset": false, - "isSlot": false, - "src": "1521:10:12", + "src": "1649:3:12", "valueSize": 1 } }, { "v": { - "declaration": 1782, + "declaration": 1928, "isOffset": false, "isSlot": false, - "src": "1837:1:12", + "src": "2062:1:12", + "valueSize": 1 + } + }, + { + "s": { + "declaration": 1932, + "isOffset": false, + "isSlot": false, + "src": "1731:1:12", "valueSize": 1 } }, { "signatures": { - "declaration": 1777, + "declaration": 1923, "isOffset": false, "isSlot": false, - "src": "1856:10:12", + "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": 1788, + "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": "1371:545:12" + "src": "1596:545:12" } ] }, - "documentation": "@dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`\n @param pos which signature to read\n @param signatures concatenated rsv signatures", - "id": 1790, + "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, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "signatureSplit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1780, + "id": 1926, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1777, + "id": 1923, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1026:16:12", + "scope": 1936, + "src": "1244:23:12", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 1776, + "id": 1922, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1026:5:12", + "src": "1244:5:12", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1425,11 +1434,11 @@ }, { "constant": false, - "id": 1779, + "id": 1925, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1044:11:12", + "scope": 1936, + "src": "1269:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1437,10 +1446,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1778, + "id": 1924, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1044:7:12", + "src": "1269:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1450,20 +1459,19 @@ "visibility": "internal" } ], - "src": "1025:31:12" + "src": "1243:38:12" }, - "payable": false, "returnParameters": { - "id": 1787, + "id": 1933, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1782, + "id": 1928, "name": "v", "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1104:7:12", + "scope": 1936, + "src": "1329:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1471,10 +1479,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1781, + "id": 1927, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1104:5:12", + "src": "1329:5:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1485,11 +1493,11 @@ }, { "constant": false, - "id": 1784, + "id": 1930, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1113:9:12", + "scope": 1936, + "src": "1338:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1497,10 +1505,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1783, + "id": 1929, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1113:7:12", + "src": "1338:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1511,11 +1519,11 @@ }, { "constant": false, - "id": 1786, + "id": 1932, "name": "s", "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1124:9:12", + "scope": 1936, + "src": "1349:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1523,10 +1531,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1785, + "id": 1931, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1124:7:12", + "src": "1349:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1536,26 +1544,26 @@ "visibility": "internal" } ], - "src": "1103:31:12" + "src": "1328:31:12" }, - "scope": 1791, - "src": "1002:914:12", + "scope": 1937, + "src": "1220:921:12", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 1792, - "src": "226:1692:12" + "scope": 1938, + "src": "226:1917:12" } ], - "src": "0:1919:12" + "src": "0:2144:12" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.938Z" + "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 index 01eb749e..49def0ed 100644 --- a/safe-contracts/build/contracts/SocialRecoveryModule.json +++ b/safe-contracts/build/contracts/SocialRecoveryModule.json @@ -244,73 +244,74 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611790806100206000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342cde4e8146100d5578063481c6a75146101005780634ab884271461015757806368125a1b146101c757806377231eaa1461022257806379716e43146102a55780637de7edef146102d65780639ca89d0d14610319578063a3f4df7e14610362578063ae68b056146103f2578063b79ffaff14610477578063ce146828146104e0578063e52cb36a1461054d578063ffa1ad7414610596575b600080fd5b3480156100e157600080fd5b506100ea610626565b6040518082815260200191505060405180910390f35b34801561010c57600080fd5b5061011561062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016357600080fd5b506101c56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565b005b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099d565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b506102a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b005b3480156102b157600080fd5b506102d46004803603810190808035600019169060200190929190505050610f6e565b005b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b005b34801561032557600080fd5b50610348600480360381019080803560001916906020019092919050505061134a565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377611439565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b757808201518184015260208101905061039c565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103fe57600080fd5b50610459600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565b60405180826000191660001916815260200191505060405180910390f35b34801561048357600080fd5b506104c66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b5061050b6004803603810190808035906020019092919050505061150d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b5061057c600480360381019080803560001916906020019092919050505061154b565b604051808215151515815260200191505060405180910390f35b3480156105a257600080fd5b506105ab61156b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105eb5780820151818401526020810190506105d0565b50505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080835183111515156106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002831015151561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107756115a4565b600091505b835182101561097957838281518110151561079157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061077a565b836003908051906020019061098f929190611697565b508260028190555050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b60606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610bd582611472565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c7e8161134a565b1515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e2957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610eb857600080fd5b505af1158015610ecc573d6000803e3d6000fd5b505050506040513d6020811015610ee257600080fd5b81019080805190602001909291905050501515610f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561142d57600660008560001916600019168152602001908152602001600020600060038381548110151561138c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140d5781806001019250505b6002548214156114205760019250611432565b8080600101915050611353565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114aa5780518252602082019150602081019050602083039250611485565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60038181548110151561151c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611710579160200282015b8281111561170f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116b7565b5b50905061171d9190611721565b5090565b61176191905b8082111561175d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611727565b5090565b905600a165627a7a7230582056674b0a048c9eb59cf0ed9e3af92ae17e0c455580386c7ab34db9e8f16583b80029", - "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342cde4e8146100d5578063481c6a75146101005780634ab884271461015757806368125a1b146101c757806377231eaa1461022257806379716e43146102a55780637de7edef146102d65780639ca89d0d14610319578063a3f4df7e14610362578063ae68b056146103f2578063b79ffaff14610477578063ce146828146104e0578063e52cb36a1461054d578063ffa1ad7414610596575b600080fd5b3480156100e157600080fd5b506100ea610626565b6040518082815260200191505060405180910390f35b34801561010c57600080fd5b5061011561062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016357600080fd5b506101c56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565b005b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099d565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b506102a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b005b3480156102b157600080fd5b506102d46004803603810190808035600019169060200190929190505050610f6e565b005b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b005b34801561032557600080fd5b50610348600480360381019080803560001916906020019092919050505061134a565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377611439565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b757808201518184015260208101905061039c565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103fe57600080fd5b50610459600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565b60405180826000191660001916815260200191505060405180910390f35b34801561048357600080fd5b506104c66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b5061050b6004803603810190808035906020019092919050505061150d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b5061057c600480360381019080803560001916906020019092919050505061154b565b604051808215151515815260200191505060405180910390f35b3480156105a257600080fd5b506105ab61156b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105eb5780820151818401526020810190506105d0565b50505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080835183111515156106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002831015151561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107756115a4565b600091505b835182101561097957838281518110151561079157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061077a565b836003908051906020019061098f929190611697565b508260028190555050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b60606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610bd582611472565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c7e8161134a565b1515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e2957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610eb857600080fd5b505af1158015610ecc573d6000803e3d6000fd5b505050506040513d6020811015610ee257600080fd5b81019080805190602001909291905050501515610f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561142d57600660008560001916600019168152602001908152602001600020600060038381548110151561138c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140d5781806001019250505b6002548214156114205760019250611432565b8080600101915050611353565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114aa5780518252602082019150602081019050602083039250611485565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60038181548110151561151c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611710579160200282015b8281111561170f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116b7565b5b50905061171d9190611721565b5090565b61176191905b8082111561175d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611727565b5090565b905600a165627a7a7230582056674b0a048c9eb59cf0ed9e3af92ae17e0c455580386c7ab34db9e8f16583b80029", - "sourceMap": "328:3660:18:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;328:3660:18;;;;;;;", - "deployedSourceMap": "328:3660:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;482:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;482:24:18;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;1240:640:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1240:640:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;607:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;607:41:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:625;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2536:625:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1993:210;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1993:210:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3322:405:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3322:405:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;375:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;375:54:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3856:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3856:130:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;851:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;851:65:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;512:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;512:24:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;716:43:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;435:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;435:40:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;482:24;;;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;1240:640:18:-;1537:9;1592:14;1346:8;:15;1332:10;:29;;1324:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1435:1;1421:10;:15;;1413:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1478:12;:10;:12::i;:::-;1549:1;1537:13;;1532:282;1556:8;:15;1552:1;:19;1532:282;;;1609:8;1618:1;1609:11;;;;;;;;;;;;;;;;;;1592:28;;1652:1;1642:6;:11;;;;1634:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:8;:16;1721:6;1712:16;;;;;;;;;;;;;;;;;;;;;;;;;1711:17;1703:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1799:4;1780:8;:16;1789:6;1780:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;1573:3;;;;;;;1532:282;;;1833:8;1823:7;:18;;;;;;;;;;;;:::i;:::-;;1863:10;1851:9;:22;;;;1240:640;;;;:::o;607:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;2536:625::-;2662:17;2784:16;963:8;:20;972:10;963:20;;;;;;;;;;;;;;;;;;;;;;;;;955:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2744:9;2755:8;2765;2682:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2682:92: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;;;2682:92:18;2662:112;;2803:17;2815:4;2803:11;:17::i;:::-;2784:36;;2839:10;:20;2850:8;2839:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2838:21;2830:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2907:38;2936:8;2907:28;:38::i;:::-;2899:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3020:4;2997:10;:20;3008:8;2997:20;;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3042:7;;;;;;;;;;;:33;;;3084:7;;;;;;;;;;;3094:1;3097:4;3103:19;3042: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;3042:81:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3042:81:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3042:81:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3042:81:18;;;;;;;;;;;;;;;;3034:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:625;;;;;:::o;1993:210::-;963:8;:20;972:10;963:20;;;;;;;;;;;;;;;;;;;;;;;;;955:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2096:10;:20;2107:8;2096:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2095:21;2087:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2192:4;2156:11;:21;2168:8;2156:21;;;;;;;;;;;;;;;;;:33;2178:10;2156:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1993:210;:::o;626:248:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;3322:405:18:-;3423:4;3443:25;3483:9;3495:1;3483:13;;3478:221;3502:7;:14;;;;3498:1;:18;3478:221;;;3541:11;:21;3553:8;3541:21;;;;;;;;;;;;;;;;;:33;3563:7;3571:1;3563:10;;;;;;;;;;;;;;;;;;;;;;;;;;;3541:33;;;;;;;;;;;;;;;;;;;;;;;;;3537:74;;;3592:19;;;;;;;3537:74;3650:9;;3629:17;:30;3625:63;;;3684:4;3677:11;;;;3625:63;3518:3;;;;;;;3478:221;;;3715:5;3708:12;;3322:405;;;;;;:::o;375:54::-;;;;;;;;;;;;;;;;;;;;:::o;3856:130::-;3934:7;3974:4;3964:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;3964:15:18;;;;;;;;;;;;;;;;3957:22;;3856:130;;;:::o;851:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;512:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;716:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;435:40::-;;;;;;;;;;;;;;;;;;;;:::o;442:300:4:-;656:1;644:7;;;;;;;;;;;636:21;;;628:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;724:10;700:7;;:35;;;;;;;;;;;;;;;;;;442:300::o;328:3660:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.24;\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.0.2\";\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[] _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 != 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 data)\n public\n pure\n returns (bytes32)\n {\n return keccak256(data);\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", "exportedSymbols": { "SocialRecoveryModule": [ - 2375 + 2660 ] }, - "id": 2376, + "id": 2661, "nodeType": "SourceUnit", "nodes": [ { - "id": 2112, + "id": 2395, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:18" + "src": "0:23:19" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "../base/Module.sol", - "id": 2113, + "id": 2396, "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 936, - "src": "24:28:18", + "scope": 2661, + "sourceUnit": 1021, + "src": "24:28:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "file": "../base/ModuleManager.sol", - "id": 2114, + "id": 2397, "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 1213, - "src": "53:35:18", + "scope": 2661, + "sourceUnit": 1331, + "src": "53:35:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", "file": "../base/OwnerManager.sol", - "id": 2115, + "id": 2398, "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 1653, - "src": "89:34:18", + "scope": 2661, + "sourceUnit": 1797, + "src": "89:34:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", "file": "../common/Enum.sol", - "id": 2116, + "id": 2399, "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 1660, - "src": "124:28:18", + "scope": 2661, + "sourceUnit": 1804, + "src": "124:28:19", "symbolAliases": [], "unitAlias": "" }, @@ -320,46 +321,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2117, + "id": 2400, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "361:6:18", + "referencedDeclaration": 1020, + "src": "361:6:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, - "id": 2118, + "id": 2401, "nodeType": "InheritanceSpecifier", - "src": "361:6:18" + "src": "361:6:19" } ], "contractDependencies": [ - 935, - 1693, - 1735 + 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": 2375, + "id": 2660, "linearizedBaseContracts": [ - 2375, - 935, - 1693, - 1735 + 2660, + 1020, + 1839, + 1881 ], "name": "SocialRecoveryModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2121, + "id": 2404, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "375:54:18", + "scope": 2660, + "src": "375:54:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -367,10 +368,10 @@ "typeString": "string" }, "typeName": { - "id": 2119, + "id": 2402, "name": "string", "nodeType": "ElementaryTypeName", - "src": "375:6:18", + "src": "375:6:19", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -379,14 +380,14 @@ "value": { "argumentTypes": null, "hexValue": "536f6369616c205265636f76657279204d6f64756c65", - "id": 2120, + "id": 2403, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "405:24:18", + "src": "405:24:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8f499aea563eae5544b16c9123d6c7c8537a7d9dd86296aa60c65de194207230", @@ -398,11 +399,11 @@ }, { "constant": true, - "id": 2124, + "id": 2407, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "435:40:18", + "scope": 2660, + "src": "435:40:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -410,10 +411,10 @@ "typeString": "string" }, "typeName": { - "id": 2122, + "id": 2405, "name": "string", "nodeType": "ElementaryTypeName", - "src": "435:6:18", + "src": "435:6:19", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -421,31 +422,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e32", - "id": 2123, + "hexValue": "302e312e30", + "id": 2406, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "468:7:18", + "src": "468:7:19", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" + "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", + "typeString": "literal_string \"0.1.0\"" }, - "value": "0.0.2" + "value": "0.1.0" }, "visibility": "public" }, { "constant": false, - "id": 2126, + "id": 2409, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "482:24:18", + "scope": 2660, + "src": "482:24:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -453,10 +454,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2125, + "id": 2408, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "482:7:18", + "src": "482:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -467,11 +468,11 @@ }, { "constant": false, - "id": 2129, + "id": 2412, "name": "friends", "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "512:24:18", + "scope": 2660, + "src": "512:24:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -480,19 +481,20 @@ }, "typeName": { "baseType": { - "id": 2127, + "id": 2410, "name": "address", "nodeType": "ElementaryTypeName", - "src": "512:7:18", + "src": "512:7:19", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2128, + "id": 2411, "length": null, "nodeType": "ArrayTypeName", - "src": "512:9:18", + "src": "512:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -503,11 +505,11 @@ }, { "constant": false, - "id": 2133, + "id": 2416, "name": "isFriend", "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "607:41:18", + "scope": 2660, + "src": "607:41:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -515,28 +517,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 2132, + "id": 2415, "keyType": { - "id": 2130, + "id": 2413, "name": "address", "nodeType": "ElementaryTypeName", - "src": "616:7:18", + "src": "616:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "607:25:18", + "src": "607:25:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2131, + "id": 2414, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "627:4:18", + "src": "627:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -548,11 +550,11 @@ }, { "constant": false, - "id": 2137, + "id": 2420, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "716:43:18", + "scope": 2660, + "src": "716:43:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -560,28 +562,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 2136, + "id": 2419, "keyType": { - "id": 2134, + "id": 2417, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "725:7:18", + "src": "725:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "716:25:18", + "src": "716:25:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 2135, + "id": 2418, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "736:4:18", + "src": "736:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -593,11 +595,11 @@ }, { "constant": false, - "id": 2143, + "id": 2426, "name": "isConfirmed", "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "851:65:18", + "scope": 2660, + "src": "851:65:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -605,46 +607,46 @@ "typeString": "mapping(bytes32 => mapping(address => bool))" }, "typeName": { - "id": 2142, + "id": 2425, "keyType": { - "id": 2138, + "id": 2421, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "860:7:18", + "src": "860:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "851:46:18", + "src": "851:46:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" }, "valueType": { - "id": 2141, + "id": 2424, "keyType": { - "id": 2139, + "id": 2422, "name": "address", "nodeType": "ElementaryTypeName", - "src": "880:7:18", + "src": "880:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "871:25:18", + "src": "871:25:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2140, + "id": 2423, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "891:4:18", + "src": "891:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -657,9 +659,9 @@ }, { "body": { - "id": 2154, + "id": 2437, "nodeType": "Block", - "src": "945:98:18", + "src": "945:98:19", "statements": [ { "expression": { @@ -669,34 +671,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2146, + "id": 2429, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2133, - "src": "963:8:18", + "referencedDeclaration": 2416, + "src": "963:8:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2149, + "id": 2432, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2147, + "id": 2430, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "972:3:18", + "referencedDeclaration": 4366, + "src": "972:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2148, + "id": 2431, "isConstant": false, "isLValue": false, "isPure": false, @@ -704,10 +706,10 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "972:10:18", + "src": "972:10:19", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "isConstant": false, @@ -715,7 +717,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "963:20:18", + "src": "963:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -724,14 +726,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e64", - "id": 2150, + "id": 2433, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "985:39:18", + "src": "985:39:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a", @@ -751,21 +753,21 @@ "typeString": "literal_string \"Method can only be called by a friend\"" } ], - "id": 2145, + "id": 2428, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "955:7:18", + "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": 2151, + "id": 2434, "isConstant": false, "isLValue": false, "isPure": false, @@ -773,41 +775,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "955:70:18", + "src": "955:70:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2152, + "id": 2435, "nodeType": "ExpressionStatement", - "src": "955:70:18" + "src": "955:70:19" }, { - "id": 2153, + "id": 2436, "nodeType": "PlaceholderStatement", - "src": "1035:1:18" + "src": "1035:1:19" } ] }, "documentation": null, - "id": 2155, + "id": 2438, "name": "onlyFriend", "nodeType": "ModifierDefinition", "parameters": { - "id": 2144, + "id": 2427, "nodeType": "ParameterList", "parameters": [], - "src": "942:2:18" + "src": "942:2:19" }, - "src": "923:120:18", + "src": "923:120:19", "visibility": "internal" }, { "body": { - "id": 2229, + "id": 2514, "nodeType": "Block", - "src": "1314:566:18", + "src": "1321:575:19", "statements": [ { "expression": { @@ -819,19 +821,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2167, + "id": 2450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2164, + "id": 2447, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "1332:10:18", + "referencedDeclaration": 2443, + "src": "1339:10:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -843,18 +845,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2165, + "id": 2448, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1346:8:18", + "referencedDeclaration": 2441, + "src": "1353:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2166, + "id": 2449, "isConstant": false, "isLValue": false, "isPure": false, @@ -862,13 +864,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1346:15:18", + "src": "1353:15:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1332:29:18", + "src": "1339:29:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -877,14 +879,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e74", - "id": 2168, + "id": 2451, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1363:39:18", + "src": "1370:39:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257", @@ -904,21 +906,21 @@ "typeString": "literal_string \"Threshold cannot exceed friends count\"" } ], - "id": 2163, + "id": 2446, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1324:7:18", + "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": 2169, + "id": 2452, "isConstant": false, "isLValue": false, "isPure": false, @@ -926,15 +928,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1324:79:18", + "src": "1331:79:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2170, + "id": 2453, "nodeType": "ExpressionStatement", - "src": "1324:79:18" + "src": "1331:79:19" }, { "expression": { @@ -946,19 +948,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2174, + "id": 2457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2172, + "id": 2455, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "1421:10:18", + "referencedDeclaration": 2443, + "src": "1428:10:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -969,14 +971,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 2173, + "id": 2456, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1435:1:18", + "src": "1442:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -984,7 +986,7 @@ }, "value": "2" }, - "src": "1421:15:18", + "src": "1428:15:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -993,14 +995,14 @@ { "argumentTypes": null, "hexValue": "4174206c65617374203220667269656e6473207265717569726564", - "id": 2175, + "id": 2458, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1438:29:18", + "src": "1445:29:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773", @@ -1020,21 +1022,21 @@ "typeString": "literal_string \"At least 2 friends required\"" } ], - "id": 2171, + "id": 2454, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1413:7:18", + "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": 2176, + "id": 2459, "isConstant": false, "isLValue": false, "isPure": false, @@ -1042,15 +1044,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1413:55:18", + "src": "1420:55:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2177, + "id": 2460, "nodeType": "ExpressionStatement", - "src": "1413:55:18" + "src": "1420:55:19" }, { "expression": { @@ -1058,18 +1060,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2178, + "id": 2461, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "1478:10:18", + "referencedDeclaration": 1019, + "src": "1485:10:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2179, + "id": 2462, "isConstant": false, "isLValue": false, "isPure": false, @@ -1077,34 +1079,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1478:12:18", + "src": "1485:12:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2180, + "id": 2463, "nodeType": "ExpressionStatement", - "src": "1478:12:18" + "src": "1485:12:19" }, { "body": { - "id": 2219, + "id": 2504, "nodeType": "Block", - "src": "1578:236:18", + "src": "1585:245:19", "statements": [ { "assignments": [ - 2193 + 2476 ], "declarations": [ { "constant": false, - "id": 2193, + "id": 2476, "name": "friend", "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1592:14:18", + "scope": 2504, + "src": "1599:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1112,10 +1114,11 @@ "typeString": "address" }, "typeName": { - "id": 2192, + "id": 2475, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1592:7:18", + "src": "1599:7:19", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1125,31 +1128,31 @@ "visibility": "internal" } ], - "id": 2197, + "id": 2480, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2194, + "id": 2477, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1609:8:18", + "referencedDeclaration": 2441, + "src": "1616:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2196, + "id": 2479, "indexExpression": { "argumentTypes": null, - "id": 2195, + "id": 2478, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "1618:1:18", + "referencedDeclaration": 2465, + "src": "1625:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1160,14 +1163,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1609:11:18", + "src": "1616:11:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1592:28:18" + "src": "1599:28:19" }, { "expression": { @@ -1179,19 +1182,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2201, + "id": 2486, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2199, + "id": 2482, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "1642:6:18", + "referencedDeclaration": 2476, + "src": "1649:6:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1201,23 +1204,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2200, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "1652:1:18", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "1659:10:19", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "1642:11:18", + "src": "1649:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1226,14 +1267,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420667269656e6420616464726573732070726f7669646564", - "id": 2202, + "id": 2487, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1655:33:18", + "src": "1671:33:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55", @@ -1253,21 +1294,21 @@ "typeString": "literal_string \"Invalid friend address provided\"" } ], - "id": 2198, + "id": 2481, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1634:7:18", + "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": 2203, + "id": 2488, "isConstant": false, "isLValue": false, "isPure": false, @@ -1275,15 +1316,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1634:55:18", + "src": "1641:64:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2204, + "id": 2489, "nodeType": "ExpressionStatement", - "src": "1634:55:18" + "src": "1641:64:19" }, { "expression": { @@ -1291,7 +1332,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2209, + "id": 2494, "isConstant": false, "isLValue": false, "isPure": false, @@ -1299,31 +1340,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1711:17:18", + "src": "1727:17:19", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2206, + "id": 2491, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2133, - "src": "1712:8:18", + "referencedDeclaration": 2416, + "src": "1728:8:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2208, + "id": 2493, "indexExpression": { "argumentTypes": null, - "id": 2207, + "id": 2492, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "1721:6:18", + "referencedDeclaration": 2476, + "src": "1737:6:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1334,7 +1375,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1712:16:18", + "src": "1728:16:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1348,14 +1389,14 @@ { "argumentTypes": null, "hexValue": "4475706c696361746520667269656e6420616464726573732070726f7669646564", - "id": 2210, + "id": 2495, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1730:35:18", + "src": "1746:35:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3", @@ -1375,21 +1416,21 @@ "typeString": "literal_string \"Duplicate friend address provided\"" } ], - "id": 2205, + "id": 2490, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1703:7:18", + "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": 2211, + "id": 2496, "isConstant": false, "isLValue": false, "isPure": false, @@ -1397,20 +1438,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1703:63:18", + "src": "1719:63:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2212, + "id": 2497, "nodeType": "ExpressionStatement", - "src": "1703:63:18" + "src": "1719:63:19" }, { "expression": { "argumentTypes": null, - "id": 2217, + "id": 2502, "isConstant": false, "isLValue": false, "isPure": false, @@ -1419,26 +1460,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2213, + "id": 2498, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2133, - "src": "1780:8:18", + "referencedDeclaration": 2416, + "src": "1796:8:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2215, + "id": 2500, "indexExpression": { "argumentTypes": null, - "id": 2214, + "id": 2499, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "1789:6:18", + "referencedDeclaration": 2476, + "src": "1805:6:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1449,7 +1490,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1780:16:18", + "src": "1796:16:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1460,14 +1501,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2216, + "id": 2501, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1799:4:18", + "src": "1815:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1475,15 +1516,15 @@ }, "value": "true" }, - "src": "1780:23:18", + "src": "1796:23:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2218, + "id": 2503, "nodeType": "ExpressionStatement", - "src": "1780:23:18" + "src": "1796:23:19" } ] }, @@ -1493,19 +1534,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2188, + "id": 2471, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2185, + "id": 2468, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "1552:1:18", + "referencedDeclaration": 2465, + "src": "1559:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1517,18 +1558,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2186, + "id": 2469, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1556:8:18", + "referencedDeclaration": 2441, + "src": "1563:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2187, + "id": 2470, "isConstant": false, "isLValue": false, "isPure": false, @@ -1536,31 +1577,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1556:15:18", + "src": "1563:15:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1552:19:18", + "src": "1559:19:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2220, + "id": 2505, "initializationExpression": { "assignments": [ - 2182 + 2465 ], "declarations": [ { "constant": false, - "id": 2182, + "id": 2465, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1537:9:18", + "scope": 2505, + "src": "1544:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1568,10 +1609,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2181, + "id": 2464, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1537:7:18", + "src": "1544:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1581,18 +1622,18 @@ "visibility": "internal" } ], - "id": 2184, + "id": 2467, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2183, + "id": 2466, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1549:1:18", + "src": "1556:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1601,12 +1642,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1537:13:18" + "src": "1544:13:19" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2190, + "id": 2473, "isConstant": false, "isLValue": false, "isPure": false, @@ -1614,15 +1655,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1573:3:18", + "src": "1580:3:19", "subExpression": { "argumentTypes": null, - "id": 2189, + "id": 2472, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "1573:1:18", + "referencedDeclaration": 2465, + "src": "1580:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1633,29 +1674,29 @@ "typeString": "uint256" } }, - "id": 2191, + "id": 2474, "nodeType": "ExpressionStatement", - "src": "1573:3:18" + "src": "1580:3:19" }, "nodeType": "ForStatement", - "src": "1532:282:18" + "src": "1539:291:19" }, { "expression": { "argumentTypes": null, - "id": 2223, + "id": 2508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2221, + "id": 2506, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "1823:7:18", + "referencedDeclaration": 2412, + "src": "1839:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" @@ -1665,43 +1706,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2222, + "id": 2507, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1833:8:18", + "referencedDeclaration": 2441, + "src": "1849:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "src": "1823:18:18", + "src": "1839:18:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2224, + "id": 2509, "nodeType": "ExpressionStatement", - "src": "1823:18:18" + "src": "1839:18:19" }, { "expression": { "argumentTypes": null, - "id": 2227, + "id": 2512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2225, + "id": 2510, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, - "src": "1851:9:18", + "referencedDeclaration": 2409, + "src": "1867:9:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1711,69 +1752,69 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2226, + "id": 2511, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "1863:10:18", + "referencedDeclaration": 2443, + "src": "1879:10:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1851:22:18", + "src": "1867:22:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2228, + "id": 2513, "nodeType": "ExpressionStatement", - "src": "1851:22:18" + "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": 2230, + "id": 2515, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2161, + "id": 2444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2158, + "id": 2441, "name": "_friends", "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1255:18:18", + "scope": 2515, + "src": "1255:25:19", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 2156, + "id": 2439, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1255:7:18", + "src": "1255:7:19", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2157, + "id": 2440, "length": null, "nodeType": "ArrayTypeName", - "src": "1255:9:18", + "src": "1255:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1784,11 +1825,11 @@ }, { "constant": false, - "id": 2160, + "id": 2443, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1275:18:18", + "scope": 2515, + "src": "1282:18:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1796,10 +1837,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2159, + "id": 2442, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1275:7:18", + "src": "1282:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1809,26 +1850,25 @@ "visibility": "internal" } ], - "src": "1254:40:18" + "src": "1254:47:19" }, - "payable": false, "returnParameters": { - "id": 2162, + "id": 2445, "nodeType": "ParameterList", "parameters": [], - "src": "1314:0:18" + "src": "1321:0:19" }, - "scope": 2375, - "src": "1240:640:18", + "scope": 2660, + "src": "1240:656:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2254, + "id": 2539, "nodeType": "Block", - "src": "2077:126:18", + "src": "2093:126:19", "statements": [ { "expression": { @@ -1836,7 +1876,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2241, + "id": 2526, "isConstant": false, "isLValue": false, "isPure": false, @@ -1844,31 +1884,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2095:21:18", + "src": "2111:21:19", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2238, + "id": 2523, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "2096:10:18", + "referencedDeclaration": 2420, + "src": "2112:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2240, + "id": 2525, "indexExpression": { "argumentTypes": null, - "id": 2239, + "id": 2524, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2107:8:18", + "referencedDeclaration": 2517, + "src": "2123:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1879,7 +1919,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2096:20:18", + "src": "2112:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1893,14 +1933,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2242, + "id": 2527, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2118:27:18", + "src": "2134:27:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", @@ -1920,21 +1960,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 2237, + "id": 2522, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2087:7:18", + "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": 2243, + "id": 2528, "isConstant": false, "isLValue": false, "isPure": false, @@ -1942,20 +1982,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2087:59:18", + "src": "2103:59:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2244, + "id": 2529, "nodeType": "ExpressionStatement", - "src": "2087:59:18" + "src": "2103:59:19" }, { "expression": { "argumentTypes": null, - "id": 2252, + "id": 2537, "isConstant": false, "isLValue": false, "isPure": false, @@ -1966,26 +2006,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2245, + "id": 2530, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "2156:11:18", + "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": 2249, + "id": 2534, "indexExpression": { "argumentTypes": null, - "id": 2246, + "id": 2531, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2168:8:18", + "referencedDeclaration": 2517, + "src": "2184:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1996,29 +2036,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2156:21:18", + "src": "2172:21:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2250, + "id": 2535, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2247, + "id": 2532, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "2178:3:18", + "referencedDeclaration": 4366, + "src": "2194:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2248, + "id": 2533, "isConstant": false, "isLValue": false, "isPure": false, @@ -2026,10 +2066,10 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2178:10:18", + "src": "2194:10:19", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "isConstant": false, @@ -2037,7 +2077,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2156:33:18", + "src": "2172:33:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2048,14 +2088,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2251, + "id": 2536, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2192:4:18", + "src": "2208:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2063,57 +2103,56 @@ }, "value": "true" }, - "src": "2156:40:18", + "src": "2172:40:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2253, + "id": 2538, "nodeType": "ExpressionStatement", - "src": "2156:40:18" + "src": "2172:40:19" } ] }, "documentation": "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash.", - "id": 2255, + "id": 2540, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 2235, + "id": 2520, "modifierName": { "argumentTypes": null, - "id": 2234, + "id": 2519, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2155, - "src": "2062:10:18", + "referencedDeclaration": 2438, + "src": "2078:10:19", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2062:10:18" + "src": "2078:10:19" } ], "name": "confirmTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 2233, + "id": 2518, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2232, + "id": 2517, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2255, - "src": "2021:16:18", + "scope": 2540, + "src": "2037:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2121,10 +2160,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2231, + "id": 2516, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2021:7:18", + "src": "2037:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2134,39 +2173,38 @@ "visibility": "internal" } ], - "src": "2020:18:18" + "src": "2036:18:19" }, - "payable": false, "returnParameters": { - "id": 2236, + "id": 2521, "nodeType": "ParameterList", "parameters": [], - "src": "2077:0:18" + "src": "2093:0:19" }, - "scope": 2375, - "src": "1993:210:18", + "scope": 2660, + "src": "2009:210:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2318, + "id": 2603, "nodeType": "Block", - "src": "2652:509:18", + "src": "2668:509:19", "statements": [ { "assignments": [ - 2267 + 2552 ], "declarations": [ { "constant": false, - "id": 2267, + "id": 2552, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2662:17:18", + "scope": 2603, + "src": "2678:17:19", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2174,10 +2212,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2266, + "id": 2551, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2662:5:18", + "src": "2678:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2187,21 +2225,21 @@ "visibility": "internal" } ], - "id": 2275, + "id": 2560, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "737761704f776e657228616464726573732c616464726573732c6164647265737329", - "id": 2270, + "id": 2555, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2706:36:18", + "src": "2722:36:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", @@ -2211,12 +2249,12 @@ }, { "argumentTypes": null, - "id": 2271, + "id": 2556, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2257, - "src": "2744:9:18", + "referencedDeclaration": 2542, + "src": "2760:9:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2224,12 +2262,12 @@ }, { "argumentTypes": null, - "id": 2272, + "id": 2557, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2259, - "src": "2755:8:18", + "referencedDeclaration": 2544, + "src": "2771:8:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2237,12 +2275,12 @@ }, { "argumentTypes": null, - "id": 2273, + "id": 2558, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2261, - "src": "2765:8:18", + "referencedDeclaration": 2546, + "src": "2781:8:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2270,18 +2308,18 @@ ], "expression": { "argumentTypes": null, - "id": 2268, + "id": 2553, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "2682:3:18", + "referencedDeclaration": 4353, + "src": "2698:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 2269, + "id": 2554, "isConstant": false, "isLValue": false, "isPure": true, @@ -2289,13 +2327,13 @@ "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2682:23:18", + "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": 2274, + "id": 2559, "isConstant": false, "isLValue": false, "isPure": false, @@ -2303,27 +2341,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2682:92:18", + "src": "2698:92:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2662:112:18" + "src": "2678:112:19" }, { "assignments": [ - 2277 + 2562 ], "declarations": [ { "constant": false, - "id": 2277, + "id": 2562, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2784:16:18", + "scope": 2603, + "src": "2800:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2331,10 +2369,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2276, + "id": 2561, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2784:7:18", + "src": "2800:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2344,18 +2382,18 @@ "visibility": "internal" } ], - "id": 2281, + "id": 2566, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2279, + "id": 2564, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2267, - "src": "2815:4:18", + "referencedDeclaration": 2552, + "src": "2831:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2369,18 +2407,18 @@ "typeString": "bytes memory" } ], - "id": 2278, + "id": 2563, "name": "getDataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2374, - "src": "2803:11:18", + "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": 2280, + "id": 2565, "isConstant": false, "isLValue": false, "isPure": false, @@ -2388,14 +2426,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2803:17:18", + "src": "2819:17:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2784:36:18" + "src": "2800:36:19" }, { "expression": { @@ -2403,7 +2441,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2286, + "id": 2571, "isConstant": false, "isLValue": false, "isPure": false, @@ -2411,31 +2449,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2838:21:18", + "src": "2854:21:19", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2283, + "id": 2568, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "2839:10:18", + "referencedDeclaration": 2420, + "src": "2855:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2285, + "id": 2570, "indexExpression": { "argumentTypes": null, - "id": 2284, + "id": 2569, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "2850:8:18", + "referencedDeclaration": 2562, + "src": "2866:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2446,7 +2484,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2839:20:18", + "src": "2855:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2460,14 +2498,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2287, + "id": 2572, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2861:27:18", + "src": "2877:27:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", @@ -2487,21 +2525,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 2282, + "id": 2567, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2830:7:18", + "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": 2288, + "id": 2573, "isConstant": false, "isLValue": false, "isPure": false, @@ -2509,15 +2547,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2830:59:18", + "src": "2846:59:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2289, + "id": 2574, "nodeType": "ExpressionStatement", - "src": "2830:59:18" + "src": "2846:59:19" }, { "expression": { @@ -2528,12 +2566,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2292, + "id": 2577, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "2936:8:18", + "referencedDeclaration": 2562, + "src": "2952:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2547,18 +2585,18 @@ "typeString": "bytes32" } ], - "id": 2291, + "id": 2576, "name": "isConfirmedByRequiredFriends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2362, - "src": "2907:28:18", + "referencedDeclaration": 2647, + "src": "2923:28:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2293, + "id": 2578, "isConstant": false, "isLValue": false, "isPure": false, @@ -2566,7 +2604,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2907:38:18", + "src": "2923:38:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2575,14 +2613,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 2294, + "id": 2579, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2947:39:18", + "src": "2963:39:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8", @@ -2602,21 +2640,21 @@ "typeString": "literal_string \"Recovery has not enough confirmations\"" } ], - "id": 2290, + "id": 2575, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2899:7:18", + "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": 2295, + "id": 2580, "isConstant": false, "isLValue": false, "isPure": false, @@ -2624,20 +2662,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2899:88:18", + "src": "2915:88:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2296, + "id": 2581, "nodeType": "ExpressionStatement", - "src": "2899:88:18" + "src": "2915:88:19" }, { "expression": { "argumentTypes": null, - "id": 2301, + "id": 2586, "isConstant": false, "isLValue": false, "isPure": false, @@ -2646,26 +2684,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2297, + "id": 2582, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "2997:10:18", + "referencedDeclaration": 2420, + "src": "3013:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2299, + "id": 2584, "indexExpression": { "argumentTypes": null, - "id": 2298, + "id": 2583, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "3008:8:18", + "referencedDeclaration": 2562, + "src": "3024:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2676,7 +2714,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2997:20:18", + "src": "3013:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2687,14 +2725,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2300, + "id": 2585, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3020:4:18", + "src": "3036:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2702,15 +2740,15 @@ }, "value": "true" }, - "src": "2997:27:18", + "src": "3013:27:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2302, + "id": 2587, "nodeType": "ExpressionStatement", - "src": "2997:27:18" + "src": "3013:27:19" }, { "expression": { @@ -2724,14 +2762,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2307, + "id": 2592, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "3084:7:18", + "referencedDeclaration": 983, + "src": "3100:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } } @@ -2739,24 +2777,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } ], - "id": 2306, + "id": 2591, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3076:7:18", + "src": "3092:7:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2308, + "id": 2593, "isConstant": false, "isLValue": false, "isPure": false, @@ -2764,23 +2802,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3076:16:18", + "src": "3092:16:19", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, { "argumentTypes": null, "hexValue": "30", - "id": 2309, + "id": 2594, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3094:1:18", + "src": "3110:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2790,12 +2828,12 @@ }, { "argumentTypes": null, - "id": 2310, + "id": 2595, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2267, - "src": "3097:4:18", + "referencedDeclaration": 2552, + "src": "3113:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2807,32 +2845,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2311, + "id": 2596, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "3103:4:18", + "referencedDeclaration": 1803, + "src": "3119:4:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", "typeString": "type(contract Enum)" } }, - "id": 2312, + "id": 2597, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "3103:14:18", + "referencedDeclaration": 1802, + "src": "3119:14:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2313, + "id": 2598, "isConstant": false, "isLValue": false, "isPure": true, @@ -2840,9 +2878,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3103:19:18", + "src": "3119:19:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } } @@ -2850,8 +2888,8 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, { "typeIdentifier": "t_rational_0_by_1", @@ -2862,38 +2900,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2304, + "id": 2589, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "3042:7:18", + "referencedDeclaration": 983, + "src": "3058:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "id": 2305, + "id": 2590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "3042:33:18", + "referencedDeclaration": 1256, + "src": "3058:33:19", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", + "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": 2314, + "id": 2599, "isConstant": false, "isLValue": false, "isPure": false, @@ -2901,7 +2939,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3042:81:18", + "src": "3058:81:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2910,14 +2948,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207265636f76657279", - "id": 2315, + "id": 2600, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3125:28:18", + "src": "3141:28:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1", @@ -2937,21 +2975,21 @@ "typeString": "literal_string \"Could not execute recovery\"" } ], - "id": 2303, + "id": 2588, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "3034:7:18", + "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": 2316, + "id": 2601, "isConstant": false, "isLValue": false, "isPure": false, @@ -2959,57 +2997,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3034:120:18", + "src": "3050:120:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2317, + "id": 2602, "nodeType": "ExpressionStatement", - "src": "3034:120:18" + "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": 2319, + "id": 2604, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 2264, + "id": 2549, "modifierName": { "argumentTypes": null, - "id": 2263, + "id": 2548, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2155, - "src": "2637:10:18", + "referencedDeclaration": 2438, + "src": "2653:10:19", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2637:10:18" + "src": "2653:10:19" } ], "name": "recoverAccess", "nodeType": "FunctionDefinition", "parameters": { - "id": 2262, + "id": 2547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2257, + "id": 2542, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2559:17:18", + "scope": 2604, + "src": "2575:17:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3017,10 +3054,11 @@ "typeString": "address" }, "typeName": { - "id": 2256, + "id": 2541, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2559:7:18", + "src": "2575:7:19", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3031,11 +3069,11 @@ }, { "constant": false, - "id": 2259, + "id": 2544, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2578:16:18", + "scope": 2604, + "src": "2594:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3043,10 +3081,11 @@ "typeString": "address" }, "typeName": { - "id": 2258, + "id": 2543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2578:7:18", + "src": "2594:7:19", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3057,11 +3096,11 @@ }, { "constant": false, - "id": 2261, + "id": 2546, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2596:16:18", + "scope": 2604, + "src": "2612:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3069,10 +3108,11 @@ "typeString": "address" }, "typeName": { - "id": 2260, + "id": 2545, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2596:7:18", + "src": "2612:7:19", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3082,37 +3122,38 @@ "visibility": "internal" } ], - "src": "2558:55:18" + "src": "2574:55:19" }, - "payable": false, "returnParameters": { - "id": 2265, + "id": 2550, "nodeType": "ParameterList", "parameters": [], - "src": "2652:0:18" + "src": "2668:0:19" }, - "scope": 2375, - "src": "2536:625:18", + "scope": 2660, + "src": "2552:625:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2361, + "id": 2646, "nodeType": "Block", - "src": "3433:294:18", + "src": "3449:294:19", "statements": [ { - "assignments": [], + "assignments": [ + 2612 + ], "declarations": [ { "constant": false, - "id": 2327, + "id": 2612, "name": "confirmationCount", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3443:25:18", + "scope": 2646, + "src": "3459:25:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3120,10 +3161,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2326, + "id": 2611, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3443:7:18", + "src": "3459:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3133,16 +3174,16 @@ "visibility": "internal" } ], - "id": 2328, + "id": 2613, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3443:25:18" + "src": "3459:25:19" }, { "body": { - "id": 2357, + "id": 2642, "nodeType": "Block", - "src": "3523:176:18", + "src": "3539:176:19", "statements": [ { "condition": { @@ -3151,26 +3192,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2340, + "id": 2625, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "3541:11:18", + "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": 2342, + "id": 2627, "indexExpression": { "argumentTypes": null, - "id": 2341, + "id": 2626, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "3553:8:18", + "referencedDeclaration": 2606, + "src": "3569:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3181,37 +3222,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3541:21:18", + "src": "3557:21:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2346, + "id": 2631, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2343, + "id": 2628, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "3563:7:18", + "referencedDeclaration": 2412, + "src": "3579:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2345, + "id": 2630, "indexExpression": { "argumentTypes": null, - "id": 2344, + "id": 2629, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2330, - "src": "3571:1:18", + "referencedDeclaration": 2615, + "src": "3587:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3222,7 +3263,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3563:10:18", + "src": "3579:10:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3233,20 +3274,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3541:33:18", + "src": "3557:33:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2350, + "id": 2635, "nodeType": "IfStatement", - "src": "3537:74:18", + "src": "3553:74:19", "trueBody": { "expression": { "argumentTypes": null, - "id": 2348, + "id": 2633, "isConstant": false, "isLValue": false, "isPure": false, @@ -3254,15 +3295,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3592:19:18", + "src": "3608:19:19", "subExpression": { "argumentTypes": null, - "id": 2347, + "id": 2632, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "3592:17:18", + "referencedDeclaration": 2612, + "src": "3608:17:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3273,9 +3314,9 @@ "typeString": "uint256" } }, - "id": 2349, + "id": 2634, "nodeType": "ExpressionStatement", - "src": "3592:19:18" + "src": "3608:19:19" } }, { @@ -3285,19 +3326,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2353, + "id": 2638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2351, + "id": 2636, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "3629:17:18", + "referencedDeclaration": 2612, + "src": "3645:17:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3307,39 +3348,39 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2352, + "id": 2637, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, - "src": "3650:9:18", + "referencedDeclaration": 2409, + "src": "3666:9:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3629:30:18", + "src": "3645:30:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2356, + "id": 2641, "nodeType": "IfStatement", - "src": "3625:63:18", + "src": "3641:63:19", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2354, + "id": 2639, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3684:4:18", + "src": "3700:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3347,10 +3388,10 @@ }, "value": "true" }, - "functionReturnParameters": 2325, - "id": 2355, + "functionReturnParameters": 2610, + "id": 2640, "nodeType": "Return", - "src": "3677:11:18" + "src": "3693:11:19" } } ] @@ -3361,19 +3402,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2336, + "id": 2621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2333, + "id": 2618, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2330, - "src": "3498:1:18", + "referencedDeclaration": 2615, + "src": "3514:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3385,18 +3426,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2334, + "id": 2619, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "3502:7:18", + "referencedDeclaration": 2412, + "src": "3518:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2335, + "id": 2620, "isConstant": false, "isLValue": true, "isPure": false, @@ -3404,31 +3445,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3502:14:18", + "src": "3518:14:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3498:18:18", + "src": "3514:18:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2358, + "id": 2643, "initializationExpression": { "assignments": [ - 2330 + 2615 ], "declarations": [ { "constant": false, - "id": 2330, + "id": 2615, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3483:9:18", + "scope": 2643, + "src": "3499:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3436,10 +3477,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2329, + "id": 2614, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3483:7:18", + "src": "3499:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3449,18 +3490,18 @@ "visibility": "internal" } ], - "id": 2332, + "id": 2617, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2331, + "id": 2616, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3495:1:18", + "src": "3511:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3469,12 +3510,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3483:13:18" + "src": "3499:13:19" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2338, + "id": 2623, "isConstant": false, "isLValue": false, "isPure": false, @@ -3482,15 +3523,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3518:3:18", + "src": "3534:3:19", "subExpression": { "argumentTypes": null, - "id": 2337, + "id": 2622, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2330, - "src": "3518:1:18", + "referencedDeclaration": 2615, + "src": "3534:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3501,25 +3542,25 @@ "typeString": "uint256" } }, - "id": 2339, + "id": 2624, "nodeType": "ExpressionStatement", - "src": "3518:3:18" + "src": "3534:3:19" }, "nodeType": "ForStatement", - "src": "3478:221:18" + "src": "3494:221:19" }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2359, + "id": 2644, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3715:5:18", + "src": "3731:5:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3527,32 +3568,31 @@ }, "value": "false" }, - "functionReturnParameters": 2325, - "id": 2360, + "functionReturnParameters": 2610, + "id": 2645, "nodeType": "Return", - "src": "3708:12:18" + "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": 2362, + "id": 2647, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "isConfirmedByRequiredFriends", "nodeType": "FunctionDefinition", "parameters": { - "id": 2322, + "id": 2607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2321, + "id": 2606, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3360:16:18", + "scope": 2647, + "src": "3376:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3560,10 +3600,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2320, + "id": 2605, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3360:7:18", + "src": "3376:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3573,20 +3613,19 @@ "visibility": "internal" } ], - "src": "3359:18:18" + "src": "3375:18:19" }, - "payable": false, "returnParameters": { - "id": 2325, + "id": 2610, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2324, + "id": 2609, "name": "", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3423:4:18", + "scope": 2647, + "src": "3439:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3594,10 +3633,10 @@ "typeString": "bool" }, "typeName": { - "id": 2323, + "id": 2608, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3423:4:18", + "src": "3439:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3607,19 +3646,19 @@ "visibility": "internal" } ], - "src": "3422:6:18" + "src": "3438:6:19" }, - "scope": 2375, - "src": "3322:405:18", + "scope": 2660, + "src": "3338:405:19", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2373, + "id": 2658, "nodeType": "Block", - "src": "3947:39:18", + "src": "3970:39:19", "statements": [ { "expression": { @@ -3627,12 +3666,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2370, + "id": 2655, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2364, - "src": "3974:4:18", + "referencedDeclaration": 2649, + "src": "3997:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3646,18 +3685,18 @@ "typeString": "bytes memory" } ], - "id": 2369, + "id": 2654, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3964:9:18", + "referencedDeclaration": 4360, + "src": "3987:9:19", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2371, + "id": 2656, "isConstant": false, "isLValue": false, "isPure": false, @@ -3665,49 +3704,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3964:15:18", + "src": "3987:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 2368, - "id": 2372, + "functionReturnParameters": 2653, + "id": 2657, "nodeType": "Return", - "src": "3957:22:18" + "src": "3980:22:19" } ] }, "documentation": "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash.", - "id": 2374, + "id": 2659, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "getDataHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2365, + "id": 2650, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2364, + "id": 2649, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2374, - "src": "3877:10:18", + "scope": 2659, + "src": "3893:17:19", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2363, + "id": 2648, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3877:5:18", + "src": "3893:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3717,20 +3755,19 @@ "visibility": "internal" } ], - "src": "3876:12:18" + "src": "3892:19:19" }, - "payable": false, "returnParameters": { - "id": 2368, + "id": 2653, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2367, + "id": 2652, "name": "", "nodeType": "VariableDeclaration", - "scope": 2374, - "src": "3934:7:18", + "scope": 2659, + "src": "3957:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3738,10 +3775,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2366, + "id": 2651, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3934:7:18", + "src": "3957:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3751,82 +3788,83 @@ "visibility": "internal" } ], - "src": "3933:9:18" + "src": "3956:9:19" }, - "scope": 2375, - "src": "3856:130:18", + "scope": 2660, + "src": "3872:137:19", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 2376, - "src": "328:3660:18" + "scope": 2661, + "src": "328:3683:19" } ], - "src": "0:3989:18" + "src": "0:4012:19" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", "exportedSymbols": { "SocialRecoveryModule": [ - 2375 + 2660 ] }, - "id": 2376, + "id": 2661, "nodeType": "SourceUnit", "nodes": [ { - "id": 2112, + "id": 2395, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:18" + "src": "0:23:19" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "../base/Module.sol", - "id": 2113, + "id": 2396, "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 936, - "src": "24:28:18", + "scope": 2661, + "sourceUnit": 1021, + "src": "24:28:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "file": "../base/ModuleManager.sol", - "id": 2114, + "id": 2397, "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 1213, - "src": "53:35:18", + "scope": 2661, + "sourceUnit": 1331, + "src": "53:35:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", "file": "../base/OwnerManager.sol", - "id": 2115, + "id": 2398, "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 1653, - "src": "89:34:18", + "scope": 2661, + "sourceUnit": 1797, + "src": "89:34:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", "file": "../common/Enum.sol", - "id": 2116, + "id": 2399, "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 1660, - "src": "124:28:18", + "scope": 2661, + "sourceUnit": 1804, + "src": "124:28:19", "symbolAliases": [], "unitAlias": "" }, @@ -3836,46 +3874,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2117, + "id": 2400, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "361:6:18", + "referencedDeclaration": 1020, + "src": "361:6:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, - "id": 2118, + "id": 2401, "nodeType": "InheritanceSpecifier", - "src": "361:6:18" + "src": "361:6:19" } ], "contractDependencies": [ - 935, - 1693, - 1735 + 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": 2375, + "id": 2660, "linearizedBaseContracts": [ - 2375, - 935, - 1693, - 1735 + 2660, + 1020, + 1839, + 1881 ], "name": "SocialRecoveryModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2121, + "id": 2404, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "375:54:18", + "scope": 2660, + "src": "375:54:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3883,10 +3921,10 @@ "typeString": "string" }, "typeName": { - "id": 2119, + "id": 2402, "name": "string", "nodeType": "ElementaryTypeName", - "src": "375:6:18", + "src": "375:6:19", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3895,14 +3933,14 @@ "value": { "argumentTypes": null, "hexValue": "536f6369616c205265636f76657279204d6f64756c65", - "id": 2120, + "id": 2403, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "405:24:18", + "src": "405:24:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8f499aea563eae5544b16c9123d6c7c8537a7d9dd86296aa60c65de194207230", @@ -3914,11 +3952,11 @@ }, { "constant": true, - "id": 2124, + "id": 2407, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "435:40:18", + "scope": 2660, + "src": "435:40:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3926,10 +3964,10 @@ "typeString": "string" }, "typeName": { - "id": 2122, + "id": 2405, "name": "string", "nodeType": "ElementaryTypeName", - "src": "435:6:18", + "src": "435:6:19", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3937,31 +3975,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e32", - "id": 2123, + "hexValue": "302e312e30", + "id": 2406, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "468:7:18", + "src": "468:7:19", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" + "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", + "typeString": "literal_string \"0.1.0\"" }, - "value": "0.0.2" + "value": "0.1.0" }, "visibility": "public" }, { "constant": false, - "id": 2126, + "id": 2409, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "482:24:18", + "scope": 2660, + "src": "482:24:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3969,10 +4007,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2125, + "id": 2408, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "482:7:18", + "src": "482:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3983,11 +4021,11 @@ }, { "constant": false, - "id": 2129, + "id": 2412, "name": "friends", "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "512:24:18", + "scope": 2660, + "src": "512:24:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3996,19 +4034,20 @@ }, "typeName": { "baseType": { - "id": 2127, + "id": 2410, "name": "address", "nodeType": "ElementaryTypeName", - "src": "512:7:18", + "src": "512:7:19", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2128, + "id": 2411, "length": null, "nodeType": "ArrayTypeName", - "src": "512:9:18", + "src": "512:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -4019,11 +4058,11 @@ }, { "constant": false, - "id": 2133, + "id": 2416, "name": "isFriend", "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "607:41:18", + "scope": 2660, + "src": "607:41:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4031,28 +4070,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 2132, + "id": 2415, "keyType": { - "id": 2130, + "id": 2413, "name": "address", "nodeType": "ElementaryTypeName", - "src": "616:7:18", + "src": "616:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "607:25:18", + "src": "607:25:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2131, + "id": 2414, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "627:4:18", + "src": "627:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4064,11 +4103,11 @@ }, { "constant": false, - "id": 2137, + "id": 2420, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "716:43:18", + "scope": 2660, + "src": "716:43:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4076,28 +4115,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 2136, + "id": 2419, "keyType": { - "id": 2134, + "id": 2417, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "725:7:18", + "src": "725:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "716:25:18", + "src": "716:25:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 2135, + "id": 2418, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "736:4:18", + "src": "736:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4109,11 +4148,11 @@ }, { "constant": false, - "id": 2143, + "id": 2426, "name": "isConfirmed", "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "851:65:18", + "scope": 2660, + "src": "851:65:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4121,46 +4160,46 @@ "typeString": "mapping(bytes32 => mapping(address => bool))" }, "typeName": { - "id": 2142, + "id": 2425, "keyType": { - "id": 2138, + "id": 2421, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "860:7:18", + "src": "860:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "851:46:18", + "src": "851:46:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" }, "valueType": { - "id": 2141, + "id": 2424, "keyType": { - "id": 2139, + "id": 2422, "name": "address", "nodeType": "ElementaryTypeName", - "src": "880:7:18", + "src": "880:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "871:25:18", + "src": "871:25:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2140, + "id": 2423, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "891:4:18", + "src": "891:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4173,9 +4212,9 @@ }, { "body": { - "id": 2154, + "id": 2437, "nodeType": "Block", - "src": "945:98:18", + "src": "945:98:19", "statements": [ { "expression": { @@ -4185,34 +4224,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2146, + "id": 2429, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2133, - "src": "963:8:18", + "referencedDeclaration": 2416, + "src": "963:8:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2149, + "id": 2432, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2147, + "id": 2430, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "972:3:18", + "referencedDeclaration": 4366, + "src": "972:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2148, + "id": 2431, "isConstant": false, "isLValue": false, "isPure": false, @@ -4220,10 +4259,10 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "972:10:18", + "src": "972:10:19", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "isConstant": false, @@ -4231,7 +4270,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "963:20:18", + "src": "963:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4240,14 +4279,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e64", - "id": 2150, + "id": 2433, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "985:39:18", + "src": "985:39:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a", @@ -4267,21 +4306,21 @@ "typeString": "literal_string \"Method can only be called by a friend\"" } ], - "id": 2145, + "id": 2428, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "955:7:18", + "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": 2151, + "id": 2434, "isConstant": false, "isLValue": false, "isPure": false, @@ -4289,41 +4328,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "955:70:18", + "src": "955:70:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2152, + "id": 2435, "nodeType": "ExpressionStatement", - "src": "955:70:18" + "src": "955:70:19" }, { - "id": 2153, + "id": 2436, "nodeType": "PlaceholderStatement", - "src": "1035:1:18" + "src": "1035:1:19" } ] }, "documentation": null, - "id": 2155, + "id": 2438, "name": "onlyFriend", "nodeType": "ModifierDefinition", "parameters": { - "id": 2144, + "id": 2427, "nodeType": "ParameterList", "parameters": [], - "src": "942:2:18" + "src": "942:2:19" }, - "src": "923:120:18", + "src": "923:120:19", "visibility": "internal" }, { "body": { - "id": 2229, + "id": 2514, "nodeType": "Block", - "src": "1314:566:18", + "src": "1321:575:19", "statements": [ { "expression": { @@ -4335,19 +4374,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2167, + "id": 2450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2164, + "id": 2447, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "1332:10:18", + "referencedDeclaration": 2443, + "src": "1339:10:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4359,18 +4398,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2165, + "id": 2448, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1346:8:18", + "referencedDeclaration": 2441, + "src": "1353:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2166, + "id": 2449, "isConstant": false, "isLValue": false, "isPure": false, @@ -4378,13 +4417,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1346:15:18", + "src": "1353:15:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1332:29:18", + "src": "1339:29:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4393,14 +4432,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e74", - "id": 2168, + "id": 2451, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1363:39:18", + "src": "1370:39:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257", @@ -4420,21 +4459,21 @@ "typeString": "literal_string \"Threshold cannot exceed friends count\"" } ], - "id": 2163, + "id": 2446, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1324:7:18", + "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": 2169, + "id": 2452, "isConstant": false, "isLValue": false, "isPure": false, @@ -4442,15 +4481,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1324:79:18", + "src": "1331:79:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2170, + "id": 2453, "nodeType": "ExpressionStatement", - "src": "1324:79:18" + "src": "1331:79:19" }, { "expression": { @@ -4462,19 +4501,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2174, + "id": 2457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2172, + "id": 2455, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "1421:10:18", + "referencedDeclaration": 2443, + "src": "1428:10:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4485,14 +4524,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 2173, + "id": 2456, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1435:1:18", + "src": "1442:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -4500,7 +4539,7 @@ }, "value": "2" }, - "src": "1421:15:18", + "src": "1428:15:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4509,14 +4548,14 @@ { "argumentTypes": null, "hexValue": "4174206c65617374203220667269656e6473207265717569726564", - "id": 2175, + "id": 2458, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1438:29:18", + "src": "1445:29:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773", @@ -4536,21 +4575,21 @@ "typeString": "literal_string \"At least 2 friends required\"" } ], - "id": 2171, + "id": 2454, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1413:7:18", + "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": 2176, + "id": 2459, "isConstant": false, "isLValue": false, "isPure": false, @@ -4558,15 +4597,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1413:55:18", + "src": "1420:55:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2177, + "id": 2460, "nodeType": "ExpressionStatement", - "src": "1413:55:18" + "src": "1420:55:19" }, { "expression": { @@ -4574,18 +4613,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2178, + "id": 2461, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "1478:10:18", + "referencedDeclaration": 1019, + "src": "1485:10:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2179, + "id": 2462, "isConstant": false, "isLValue": false, "isPure": false, @@ -4593,34 +4632,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1478:12:18", + "src": "1485:12:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2180, + "id": 2463, "nodeType": "ExpressionStatement", - "src": "1478:12:18" + "src": "1485:12:19" }, { "body": { - "id": 2219, + "id": 2504, "nodeType": "Block", - "src": "1578:236:18", + "src": "1585:245:19", "statements": [ { "assignments": [ - 2193 + 2476 ], "declarations": [ { "constant": false, - "id": 2193, + "id": 2476, "name": "friend", "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1592:14:18", + "scope": 2504, + "src": "1599:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4628,10 +4667,11 @@ "typeString": "address" }, "typeName": { - "id": 2192, + "id": 2475, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1592:7:18", + "src": "1599:7:19", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4641,31 +4681,31 @@ "visibility": "internal" } ], - "id": 2197, + "id": 2480, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2194, + "id": 2477, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1609:8:18", + "referencedDeclaration": 2441, + "src": "1616:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2196, + "id": 2479, "indexExpression": { "argumentTypes": null, - "id": 2195, + "id": 2478, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "1618:1:18", + "referencedDeclaration": 2465, + "src": "1625:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4676,14 +4716,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1609:11:18", + "src": "1616:11:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1592:28:18" + "src": "1599:28:19" }, { "expression": { @@ -4695,19 +4735,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2201, + "id": 2486, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2199, + "id": 2482, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "1642:6:18", + "referencedDeclaration": 2476, + "src": "1649:6:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4717,23 +4757,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2200, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "1652:1:18", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "1659:10:19", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "1642:11:18", + "src": "1649:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4742,14 +4820,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420667269656e6420616464726573732070726f7669646564", - "id": 2202, + "id": 2487, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1655:33:18", + "src": "1671:33:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55", @@ -4769,21 +4847,21 @@ "typeString": "literal_string \"Invalid friend address provided\"" } ], - "id": 2198, + "id": 2481, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1634:7:18", + "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": 2203, + "id": 2488, "isConstant": false, "isLValue": false, "isPure": false, @@ -4791,15 +4869,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1634:55:18", + "src": "1641:64:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2204, + "id": 2489, "nodeType": "ExpressionStatement", - "src": "1634:55:18" + "src": "1641:64:19" }, { "expression": { @@ -4807,7 +4885,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2209, + "id": 2494, "isConstant": false, "isLValue": false, "isPure": false, @@ -4815,31 +4893,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1711:17:18", + "src": "1727:17:19", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2206, + "id": 2491, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2133, - "src": "1712:8:18", + "referencedDeclaration": 2416, + "src": "1728:8:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2208, + "id": 2493, "indexExpression": { "argumentTypes": null, - "id": 2207, + "id": 2492, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "1721:6:18", + "referencedDeclaration": 2476, + "src": "1737:6:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4850,7 +4928,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1712:16:18", + "src": "1728:16:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4864,14 +4942,14 @@ { "argumentTypes": null, "hexValue": "4475706c696361746520667269656e6420616464726573732070726f7669646564", - "id": 2210, + "id": 2495, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1730:35:18", + "src": "1746:35:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3", @@ -4891,21 +4969,21 @@ "typeString": "literal_string \"Duplicate friend address provided\"" } ], - "id": 2205, + "id": 2490, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1703:7:18", + "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": 2211, + "id": 2496, "isConstant": false, "isLValue": false, "isPure": false, @@ -4913,20 +4991,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1703:63:18", + "src": "1719:63:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2212, + "id": 2497, "nodeType": "ExpressionStatement", - "src": "1703:63:18" + "src": "1719:63:19" }, { "expression": { "argumentTypes": null, - "id": 2217, + "id": 2502, "isConstant": false, "isLValue": false, "isPure": false, @@ -4935,26 +5013,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2213, + "id": 2498, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2133, - "src": "1780:8:18", + "referencedDeclaration": 2416, + "src": "1796:8:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2215, + "id": 2500, "indexExpression": { "argumentTypes": null, - "id": 2214, + "id": 2499, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "1789:6:18", + "referencedDeclaration": 2476, + "src": "1805:6:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4965,7 +5043,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1780:16:18", + "src": "1796:16:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4976,14 +5054,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2216, + "id": 2501, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1799:4:18", + "src": "1815:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4991,15 +5069,15 @@ }, "value": "true" }, - "src": "1780:23:18", + "src": "1796:23:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2218, + "id": 2503, "nodeType": "ExpressionStatement", - "src": "1780:23:18" + "src": "1796:23:19" } ] }, @@ -5009,19 +5087,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2188, + "id": 2471, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2185, + "id": 2468, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "1552:1:18", + "referencedDeclaration": 2465, + "src": "1559:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5033,18 +5111,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2186, + "id": 2469, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1556:8:18", + "referencedDeclaration": 2441, + "src": "1563:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2187, + "id": 2470, "isConstant": false, "isLValue": false, "isPure": false, @@ -5052,31 +5130,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1556:15:18", + "src": "1563:15:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1552:19:18", + "src": "1559:19:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2220, + "id": 2505, "initializationExpression": { "assignments": [ - 2182 + 2465 ], "declarations": [ { "constant": false, - "id": 2182, + "id": 2465, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1537:9:18", + "scope": 2505, + "src": "1544:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5084,10 +5162,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2181, + "id": 2464, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1537:7:18", + "src": "1544:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5097,18 +5175,18 @@ "visibility": "internal" } ], - "id": 2184, + "id": 2467, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2183, + "id": 2466, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1549:1:18", + "src": "1556:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5117,12 +5195,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1537:13:18" + "src": "1544:13:19" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2190, + "id": 2473, "isConstant": false, "isLValue": false, "isPure": false, @@ -5130,15 +5208,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1573:3:18", + "src": "1580:3:19", "subExpression": { "argumentTypes": null, - "id": 2189, + "id": 2472, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "1573:1:18", + "referencedDeclaration": 2465, + "src": "1580:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5149,29 +5227,29 @@ "typeString": "uint256" } }, - "id": 2191, + "id": 2474, "nodeType": "ExpressionStatement", - "src": "1573:3:18" + "src": "1580:3:19" }, "nodeType": "ForStatement", - "src": "1532:282:18" + "src": "1539:291:19" }, { "expression": { "argumentTypes": null, - "id": 2223, + "id": 2508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2221, + "id": 2506, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "1823:7:18", + "referencedDeclaration": 2412, + "src": "1839:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" @@ -5181,43 +5259,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2222, + "id": 2507, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1833:8:18", + "referencedDeclaration": 2441, + "src": "1849:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "src": "1823:18:18", + "src": "1839:18:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2224, + "id": 2509, "nodeType": "ExpressionStatement", - "src": "1823:18:18" + "src": "1839:18:19" }, { "expression": { "argumentTypes": null, - "id": 2227, + "id": 2512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2225, + "id": 2510, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, - "src": "1851:9:18", + "referencedDeclaration": 2409, + "src": "1867:9:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5227,69 +5305,69 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2226, + "id": 2511, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "1863:10:18", + "referencedDeclaration": 2443, + "src": "1879:10:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1851:22:18", + "src": "1867:22:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2228, + "id": 2513, "nodeType": "ExpressionStatement", - "src": "1851:22:18" + "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": 2230, + "id": 2515, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2161, + "id": 2444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2158, + "id": 2441, "name": "_friends", "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1255:18:18", + "scope": 2515, + "src": "1255:25:19", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 2156, + "id": 2439, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1255:7:18", + "src": "1255:7:19", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2157, + "id": 2440, "length": null, "nodeType": "ArrayTypeName", - "src": "1255:9:18", + "src": "1255:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -5300,11 +5378,11 @@ }, { "constant": false, - "id": 2160, + "id": 2443, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1275:18:18", + "scope": 2515, + "src": "1282:18:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5312,10 +5390,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2159, + "id": 2442, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1275:7:18", + "src": "1282:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5325,26 +5403,25 @@ "visibility": "internal" } ], - "src": "1254:40:18" + "src": "1254:47:19" }, - "payable": false, "returnParameters": { - "id": 2162, + "id": 2445, "nodeType": "ParameterList", "parameters": [], - "src": "1314:0:18" + "src": "1321:0:19" }, - "scope": 2375, - "src": "1240:640:18", + "scope": 2660, + "src": "1240:656:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2254, + "id": 2539, "nodeType": "Block", - "src": "2077:126:18", + "src": "2093:126:19", "statements": [ { "expression": { @@ -5352,7 +5429,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2241, + "id": 2526, "isConstant": false, "isLValue": false, "isPure": false, @@ -5360,31 +5437,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2095:21:18", + "src": "2111:21:19", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2238, + "id": 2523, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "2096:10:18", + "referencedDeclaration": 2420, + "src": "2112:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2240, + "id": 2525, "indexExpression": { "argumentTypes": null, - "id": 2239, + "id": 2524, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2107:8:18", + "referencedDeclaration": 2517, + "src": "2123:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5395,7 +5472,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2096:20:18", + "src": "2112:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5409,14 +5486,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2242, + "id": 2527, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2118:27:18", + "src": "2134:27:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", @@ -5436,21 +5513,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 2237, + "id": 2522, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2087:7:18", + "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": 2243, + "id": 2528, "isConstant": false, "isLValue": false, "isPure": false, @@ -5458,20 +5535,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2087:59:18", + "src": "2103:59:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2244, + "id": 2529, "nodeType": "ExpressionStatement", - "src": "2087:59:18" + "src": "2103:59:19" }, { "expression": { "argumentTypes": null, - "id": 2252, + "id": 2537, "isConstant": false, "isLValue": false, "isPure": false, @@ -5482,26 +5559,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2245, + "id": 2530, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "2156:11:18", + "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": 2249, + "id": 2534, "indexExpression": { "argumentTypes": null, - "id": 2246, + "id": 2531, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2168:8:18", + "referencedDeclaration": 2517, + "src": "2184:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5512,29 +5589,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2156:21:18", + "src": "2172:21:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2250, + "id": 2535, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2247, + "id": 2532, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "2178:3:18", + "referencedDeclaration": 4366, + "src": "2194:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2248, + "id": 2533, "isConstant": false, "isLValue": false, "isPure": false, @@ -5542,10 +5619,10 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2178:10:18", + "src": "2194:10:19", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "isConstant": false, @@ -5553,7 +5630,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2156:33:18", + "src": "2172:33:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5564,14 +5641,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2251, + "id": 2536, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2192:4:18", + "src": "2208:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5579,57 +5656,56 @@ }, "value": "true" }, - "src": "2156:40:18", + "src": "2172:40:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2253, + "id": 2538, "nodeType": "ExpressionStatement", - "src": "2156:40:18" + "src": "2172:40:19" } ] }, "documentation": "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash.", - "id": 2255, + "id": 2540, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 2235, + "id": 2520, "modifierName": { "argumentTypes": null, - "id": 2234, + "id": 2519, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2155, - "src": "2062:10:18", + "referencedDeclaration": 2438, + "src": "2078:10:19", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2062:10:18" + "src": "2078:10:19" } ], "name": "confirmTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 2233, + "id": 2518, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2232, + "id": 2517, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2255, - "src": "2021:16:18", + "scope": 2540, + "src": "2037:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5637,10 +5713,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2231, + "id": 2516, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2021:7:18", + "src": "2037:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5650,39 +5726,38 @@ "visibility": "internal" } ], - "src": "2020:18:18" + "src": "2036:18:19" }, - "payable": false, "returnParameters": { - "id": 2236, + "id": 2521, "nodeType": "ParameterList", "parameters": [], - "src": "2077:0:18" + "src": "2093:0:19" }, - "scope": 2375, - "src": "1993:210:18", + "scope": 2660, + "src": "2009:210:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2318, + "id": 2603, "nodeType": "Block", - "src": "2652:509:18", + "src": "2668:509:19", "statements": [ { "assignments": [ - 2267 + 2552 ], "declarations": [ { "constant": false, - "id": 2267, + "id": 2552, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2662:17:18", + "scope": 2603, + "src": "2678:17:19", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5690,10 +5765,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2266, + "id": 2551, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2662:5:18", + "src": "2678:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5703,21 +5778,21 @@ "visibility": "internal" } ], - "id": 2275, + "id": 2560, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "737761704f776e657228616464726573732c616464726573732c6164647265737329", - "id": 2270, + "id": 2555, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2706:36:18", + "src": "2722:36:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", @@ -5727,12 +5802,12 @@ }, { "argumentTypes": null, - "id": 2271, + "id": 2556, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2257, - "src": "2744:9:18", + "referencedDeclaration": 2542, + "src": "2760:9:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5740,12 +5815,12 @@ }, { "argumentTypes": null, - "id": 2272, + "id": 2557, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2259, - "src": "2755:8:18", + "referencedDeclaration": 2544, + "src": "2771:8:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5753,12 +5828,12 @@ }, { "argumentTypes": null, - "id": 2273, + "id": 2558, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2261, - "src": "2765:8:18", + "referencedDeclaration": 2546, + "src": "2781:8:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5786,18 +5861,18 @@ ], "expression": { "argumentTypes": null, - "id": 2268, + "id": 2553, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "2682:3:18", + "referencedDeclaration": 4353, + "src": "2698:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 2269, + "id": 2554, "isConstant": false, "isLValue": false, "isPure": true, @@ -5805,13 +5880,13 @@ "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2682:23:18", + "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": 2274, + "id": 2559, "isConstant": false, "isLValue": false, "isPure": false, @@ -5819,27 +5894,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2682:92:18", + "src": "2698:92:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2662:112:18" + "src": "2678:112:19" }, { "assignments": [ - 2277 + 2562 ], "declarations": [ { "constant": false, - "id": 2277, + "id": 2562, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2784:16:18", + "scope": 2603, + "src": "2800:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5847,10 +5922,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2276, + "id": 2561, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2784:7:18", + "src": "2800:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5860,18 +5935,18 @@ "visibility": "internal" } ], - "id": 2281, + "id": 2566, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2279, + "id": 2564, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2267, - "src": "2815:4:18", + "referencedDeclaration": 2552, + "src": "2831:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5885,18 +5960,18 @@ "typeString": "bytes memory" } ], - "id": 2278, + "id": 2563, "name": "getDataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2374, - "src": "2803:11:18", + "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": 2280, + "id": 2565, "isConstant": false, "isLValue": false, "isPure": false, @@ -5904,14 +5979,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2803:17:18", + "src": "2819:17:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2784:36:18" + "src": "2800:36:19" }, { "expression": { @@ -5919,7 +5994,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2286, + "id": 2571, "isConstant": false, "isLValue": false, "isPure": false, @@ -5927,31 +6002,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2838:21:18", + "src": "2854:21:19", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2283, + "id": 2568, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "2839:10:18", + "referencedDeclaration": 2420, + "src": "2855:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2285, + "id": 2570, "indexExpression": { "argumentTypes": null, - "id": 2284, + "id": 2569, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "2850:8:18", + "referencedDeclaration": 2562, + "src": "2866:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5962,7 +6037,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2839:20:18", + "src": "2855:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5976,14 +6051,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2287, + "id": 2572, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2861:27:18", + "src": "2877:27:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", @@ -6003,21 +6078,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 2282, + "id": 2567, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2830:7:18", + "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": 2288, + "id": 2573, "isConstant": false, "isLValue": false, "isPure": false, @@ -6025,15 +6100,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2830:59:18", + "src": "2846:59:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2289, + "id": 2574, "nodeType": "ExpressionStatement", - "src": "2830:59:18" + "src": "2846:59:19" }, { "expression": { @@ -6044,12 +6119,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2292, + "id": 2577, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "2936:8:18", + "referencedDeclaration": 2562, + "src": "2952:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6063,18 +6138,18 @@ "typeString": "bytes32" } ], - "id": 2291, + "id": 2576, "name": "isConfirmedByRequiredFriends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2362, - "src": "2907:28:18", + "referencedDeclaration": 2647, + "src": "2923:28:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2293, + "id": 2578, "isConstant": false, "isLValue": false, "isPure": false, @@ -6082,7 +6157,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2907:38:18", + "src": "2923:38:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6091,14 +6166,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 2294, + "id": 2579, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2947:39:18", + "src": "2963:39:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8", @@ -6118,21 +6193,21 @@ "typeString": "literal_string \"Recovery has not enough confirmations\"" } ], - "id": 2290, + "id": 2575, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2899:7:18", + "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": 2295, + "id": 2580, "isConstant": false, "isLValue": false, "isPure": false, @@ -6140,20 +6215,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2899:88:18", + "src": "2915:88:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2296, + "id": 2581, "nodeType": "ExpressionStatement", - "src": "2899:88:18" + "src": "2915:88:19" }, { "expression": { "argumentTypes": null, - "id": 2301, + "id": 2586, "isConstant": false, "isLValue": false, "isPure": false, @@ -6162,26 +6237,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2297, + "id": 2582, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "2997:10:18", + "referencedDeclaration": 2420, + "src": "3013:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2299, + "id": 2584, "indexExpression": { "argumentTypes": null, - "id": 2298, + "id": 2583, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "3008:8:18", + "referencedDeclaration": 2562, + "src": "3024:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6192,7 +6267,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2997:20:18", + "src": "3013:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6203,14 +6278,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2300, + "id": 2585, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3020:4:18", + "src": "3036:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6218,15 +6293,15 @@ }, "value": "true" }, - "src": "2997:27:18", + "src": "3013:27:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2302, + "id": 2587, "nodeType": "ExpressionStatement", - "src": "2997:27:18" + "src": "3013:27:19" }, { "expression": { @@ -6240,14 +6315,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2307, + "id": 2592, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "3084:7:18", + "referencedDeclaration": 983, + "src": "3100:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } } @@ -6255,24 +6330,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } ], - "id": 2306, + "id": 2591, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3076:7:18", + "src": "3092:7:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2308, + "id": 2593, "isConstant": false, "isLValue": false, "isPure": false, @@ -6280,23 +6355,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3076:16:18", + "src": "3092:16:19", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, { "argumentTypes": null, "hexValue": "30", - "id": 2309, + "id": 2594, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3094:1:18", + "src": "3110:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6306,12 +6381,12 @@ }, { "argumentTypes": null, - "id": 2310, + "id": 2595, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2267, - "src": "3097:4:18", + "referencedDeclaration": 2552, + "src": "3113:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6323,32 +6398,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2311, + "id": 2596, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "3103:4:18", + "referencedDeclaration": 1803, + "src": "3119:4:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", "typeString": "type(contract Enum)" } }, - "id": 2312, + "id": 2597, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "3103:14:18", + "referencedDeclaration": 1802, + "src": "3119:14:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2313, + "id": 2598, "isConstant": false, "isLValue": false, "isPure": true, @@ -6356,9 +6431,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3103:19:18", + "src": "3119:19:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } } @@ -6366,8 +6441,8 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" }, { "typeIdentifier": "t_rational_0_by_1", @@ -6378,38 +6453,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2304, + "id": 2589, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "3042:7:18", + "referencedDeclaration": 983, + "src": "3058:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "id": 2305, + "id": 2590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "3042:33:18", + "referencedDeclaration": 1256, + "src": "3058:33:19", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", + "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": 2314, + "id": 2599, "isConstant": false, "isLValue": false, "isPure": false, @@ -6417,7 +6492,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3042:81:18", + "src": "3058:81:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6426,14 +6501,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207265636f76657279", - "id": 2315, + "id": 2600, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3125:28:18", + "src": "3141:28:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1", @@ -6453,21 +6528,21 @@ "typeString": "literal_string \"Could not execute recovery\"" } ], - "id": 2303, + "id": 2588, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "3034:7:18", + "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": 2316, + "id": 2601, "isConstant": false, "isLValue": false, "isPure": false, @@ -6475,57 +6550,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3034:120:18", + "src": "3050:120:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2317, + "id": 2602, "nodeType": "ExpressionStatement", - "src": "3034:120:18" + "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": 2319, + "id": 2604, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 2264, + "id": 2549, "modifierName": { "argumentTypes": null, - "id": 2263, + "id": 2548, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2155, - "src": "2637:10:18", + "referencedDeclaration": 2438, + "src": "2653:10:19", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2637:10:18" + "src": "2653:10:19" } ], "name": "recoverAccess", "nodeType": "FunctionDefinition", "parameters": { - "id": 2262, + "id": 2547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2257, + "id": 2542, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2559:17:18", + "scope": 2604, + "src": "2575:17:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6533,10 +6607,11 @@ "typeString": "address" }, "typeName": { - "id": 2256, + "id": 2541, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2559:7:18", + "src": "2575:7:19", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6547,11 +6622,11 @@ }, { "constant": false, - "id": 2259, + "id": 2544, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2578:16:18", + "scope": 2604, + "src": "2594:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6559,10 +6634,11 @@ "typeString": "address" }, "typeName": { - "id": 2258, + "id": 2543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2578:7:18", + "src": "2594:7:19", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6573,11 +6649,11 @@ }, { "constant": false, - "id": 2261, + "id": 2546, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2596:16:18", + "scope": 2604, + "src": "2612:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6585,10 +6661,11 @@ "typeString": "address" }, "typeName": { - "id": 2260, + "id": 2545, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2596:7:18", + "src": "2612:7:19", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6598,37 +6675,38 @@ "visibility": "internal" } ], - "src": "2558:55:18" + "src": "2574:55:19" }, - "payable": false, "returnParameters": { - "id": 2265, + "id": 2550, "nodeType": "ParameterList", "parameters": [], - "src": "2652:0:18" + "src": "2668:0:19" }, - "scope": 2375, - "src": "2536:625:18", + "scope": 2660, + "src": "2552:625:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2361, + "id": 2646, "nodeType": "Block", - "src": "3433:294:18", + "src": "3449:294:19", "statements": [ { - "assignments": [], + "assignments": [ + 2612 + ], "declarations": [ { "constant": false, - "id": 2327, + "id": 2612, "name": "confirmationCount", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3443:25:18", + "scope": 2646, + "src": "3459:25:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6636,10 +6714,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2326, + "id": 2611, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3443:7:18", + "src": "3459:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6649,16 +6727,16 @@ "visibility": "internal" } ], - "id": 2328, + "id": 2613, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3443:25:18" + "src": "3459:25:19" }, { "body": { - "id": 2357, + "id": 2642, "nodeType": "Block", - "src": "3523:176:18", + "src": "3539:176:19", "statements": [ { "condition": { @@ -6667,26 +6745,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2340, + "id": 2625, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "3541:11:18", + "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": 2342, + "id": 2627, "indexExpression": { "argumentTypes": null, - "id": 2341, + "id": 2626, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "3553:8:18", + "referencedDeclaration": 2606, + "src": "3569:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6697,37 +6775,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3541:21:18", + "src": "3557:21:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2346, + "id": 2631, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2343, + "id": 2628, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "3563:7:18", + "referencedDeclaration": 2412, + "src": "3579:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2345, + "id": 2630, "indexExpression": { "argumentTypes": null, - "id": 2344, + "id": 2629, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2330, - "src": "3571:1:18", + "referencedDeclaration": 2615, + "src": "3587:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6738,7 +6816,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3563:10:18", + "src": "3579:10:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6749,20 +6827,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3541:33:18", + "src": "3557:33:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2350, + "id": 2635, "nodeType": "IfStatement", - "src": "3537:74:18", + "src": "3553:74:19", "trueBody": { "expression": { "argumentTypes": null, - "id": 2348, + "id": 2633, "isConstant": false, "isLValue": false, "isPure": false, @@ -6770,15 +6848,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3592:19:18", + "src": "3608:19:19", "subExpression": { "argumentTypes": null, - "id": 2347, + "id": 2632, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "3592:17:18", + "referencedDeclaration": 2612, + "src": "3608:17:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6789,9 +6867,9 @@ "typeString": "uint256" } }, - "id": 2349, + "id": 2634, "nodeType": "ExpressionStatement", - "src": "3592:19:18" + "src": "3608:19:19" } }, { @@ -6801,19 +6879,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2353, + "id": 2638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2351, + "id": 2636, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "3629:17:18", + "referencedDeclaration": 2612, + "src": "3645:17:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6823,39 +6901,39 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2352, + "id": 2637, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, - "src": "3650:9:18", + "referencedDeclaration": 2409, + "src": "3666:9:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3629:30:18", + "src": "3645:30:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2356, + "id": 2641, "nodeType": "IfStatement", - "src": "3625:63:18", + "src": "3641:63:19", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2354, + "id": 2639, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3684:4:18", + "src": "3700:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6863,10 +6941,10 @@ }, "value": "true" }, - "functionReturnParameters": 2325, - "id": 2355, + "functionReturnParameters": 2610, + "id": 2640, "nodeType": "Return", - "src": "3677:11:18" + "src": "3693:11:19" } } ] @@ -6877,19 +6955,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2336, + "id": 2621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2333, + "id": 2618, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2330, - "src": "3498:1:18", + "referencedDeclaration": 2615, + "src": "3514:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6901,18 +6979,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2334, + "id": 2619, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "3502:7:18", + "referencedDeclaration": 2412, + "src": "3518:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2335, + "id": 2620, "isConstant": false, "isLValue": true, "isPure": false, @@ -6920,31 +6998,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3502:14:18", + "src": "3518:14:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3498:18:18", + "src": "3514:18:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2358, + "id": 2643, "initializationExpression": { "assignments": [ - 2330 + 2615 ], "declarations": [ { "constant": false, - "id": 2330, + "id": 2615, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3483:9:18", + "scope": 2643, + "src": "3499:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6952,10 +7030,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2329, + "id": 2614, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3483:7:18", + "src": "3499:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6965,18 +7043,18 @@ "visibility": "internal" } ], - "id": 2332, + "id": 2617, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2331, + "id": 2616, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3495:1:18", + "src": "3511:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6985,12 +7063,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3483:13:18" + "src": "3499:13:19" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2338, + "id": 2623, "isConstant": false, "isLValue": false, "isPure": false, @@ -6998,15 +7076,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3518:3:18", + "src": "3534:3:19", "subExpression": { "argumentTypes": null, - "id": 2337, + "id": 2622, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2330, - "src": "3518:1:18", + "referencedDeclaration": 2615, + "src": "3534:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7017,25 +7095,25 @@ "typeString": "uint256" } }, - "id": 2339, + "id": 2624, "nodeType": "ExpressionStatement", - "src": "3518:3:18" + "src": "3534:3:19" }, "nodeType": "ForStatement", - "src": "3478:221:18" + "src": "3494:221:19" }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2359, + "id": 2644, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3715:5:18", + "src": "3731:5:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7043,32 +7121,31 @@ }, "value": "false" }, - "functionReturnParameters": 2325, - "id": 2360, + "functionReturnParameters": 2610, + "id": 2645, "nodeType": "Return", - "src": "3708:12:18" + "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": 2362, + "id": 2647, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "isConfirmedByRequiredFriends", "nodeType": "FunctionDefinition", "parameters": { - "id": 2322, + "id": 2607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2321, + "id": 2606, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3360:16:18", + "scope": 2647, + "src": "3376:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7076,10 +7153,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2320, + "id": 2605, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3360:7:18", + "src": "3376:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7089,20 +7166,19 @@ "visibility": "internal" } ], - "src": "3359:18:18" + "src": "3375:18:19" }, - "payable": false, "returnParameters": { - "id": 2325, + "id": 2610, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2324, + "id": 2609, "name": "", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3423:4:18", + "scope": 2647, + "src": "3439:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7110,10 +7186,10 @@ "typeString": "bool" }, "typeName": { - "id": 2323, + "id": 2608, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3423:4:18", + "src": "3439:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7123,19 +7199,19 @@ "visibility": "internal" } ], - "src": "3422:6:18" + "src": "3438:6:19" }, - "scope": 2375, - "src": "3322:405:18", + "scope": 2660, + "src": "3338:405:19", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2373, + "id": 2658, "nodeType": "Block", - "src": "3947:39:18", + "src": "3970:39:19", "statements": [ { "expression": { @@ -7143,12 +7219,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2370, + "id": 2655, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2364, - "src": "3974:4:18", + "referencedDeclaration": 2649, + "src": "3997:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7162,18 +7238,18 @@ "typeString": "bytes memory" } ], - "id": 2369, + "id": 2654, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3964:9:18", + "referencedDeclaration": 4360, + "src": "3987:9:19", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2371, + "id": 2656, "isConstant": false, "isLValue": false, "isPure": false, @@ -7181,49 +7257,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3964:15:18", + "src": "3987:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 2368, - "id": 2372, + "functionReturnParameters": 2653, + "id": 2657, "nodeType": "Return", - "src": "3957:22:18" + "src": "3980:22:19" } ] }, "documentation": "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash.", - "id": 2374, + "id": 2659, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "getDataHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2365, + "id": 2650, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2364, + "id": 2649, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2374, - "src": "3877:10:18", + "scope": 2659, + "src": "3893:17:19", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2363, + "id": 2648, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3877:5:18", + "src": "3893:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7233,20 +7308,19 @@ "visibility": "internal" } ], - "src": "3876:12:18" + "src": "3892:19:19" }, - "payable": false, "returnParameters": { - "id": 2368, + "id": 2653, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2367, + "id": 2652, "name": "", "nodeType": "VariableDeclaration", - "scope": 2374, - "src": "3934:7:18", + "scope": 2659, + "src": "3957:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7254,10 +7328,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2366, + "id": 2651, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3934:7:18", + "src": "3957:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7267,39 +7341,26 @@ "visibility": "internal" } ], - "src": "3933:9:18" + "src": "3956:9:19" }, - "scope": 2375, - "src": "3856:130:18", + "scope": 2660, + "src": "3872:137:19", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 2376, - "src": "328:3660:18" + "scope": 2661, + "src": "328:3683:19" } ], - "src": "0:3989:18" + "src": "0:4012:19" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0x7b813df8b963c5c3d4d18b6e2319c09e9ff5e9ea", - "transactionHash": "0x3bfbb38caa58f7fbdb48978e96b3c9eb0f4925f303daa29ec23be27a79c3e73c" - }, - "1538739975997": { - "events": {}, - "links": {}, - "address": "0x0290fb167208af455bb137780163b7b7a9a10c16", - "transactionHash": "0x9ec6c558e874acec6da5e9bbc83f2080cfd0d6a76bad2ecd337682aee9e63307" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:43:41.451Z" + "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 index e092307e..b9b03acb 100644 --- a/safe-contracts/build/contracts/StateChannelModule.json +++ b/safe-contracts/build/contracts/StateChannelModule.json @@ -155,62 +155,63 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061117e806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b50004114610093578063481c6a75146101595780637de7edef146101b0578063a3f4df7e146101f3578063ba0bba4014610283578063e52cb36a1461029a578063f6cc15d0146102df578063ffa1ad74146103cf575b600080fd5b34801561009f57600080fd5b5061013b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061045f565b60405180826000191660001916815260200191505060405180910390f35b34801561016557600080fd5b5061016e6106e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bc57600080fd5b506101f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061070d565b005b3480156101ff57600080fd5b506102086108f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028f57600080fd5b50610298610929565b005b3480156102a657600080fd5b506102c96004803603810190808035600019169060200190929190505050610933565b6040518082815260200191505060405180910390f35b3480156102eb57600080fd5b506103cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094b565b005b3480156103db57600080fd5b506103e4610c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610424578082015181840152602081019050610409565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561060357805182526020820191506020810190506020830392506105de565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561063157fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156106af578051825260208201915060208101905060208303925061068a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610931610c53565b565b60026020528060005260406000206000915090505481565b600061095a878787878761045f565b90506000600260008360001916600019168152602001908152602001600020541415156109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109f98183610d46565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ad357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b13578082015181840152602081019050610af8565b50505050905090810190601f168015610b405780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d6020811015610b8c57600080fd5b81019080805190602001909291905050501515610c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b81019080805190602001909291905050509050600091505b8082101561107257610e2b86868461107a565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b505050506040513d6020811015610f1457600080fd5b81019080805190602001909291905050501515610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050610e18565b505050505050565b60008060008061108a8686611123565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561110d573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820a48bbf0ad2bc336bfcfefa06097ad1574518b511dc1e366dc303d515890088810029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b50004114610093578063481c6a75146101595780637de7edef146101b0578063a3f4df7e146101f3578063ba0bba4014610283578063e52cb36a1461029a578063f6cc15d0146102df578063ffa1ad74146103cf575b600080fd5b34801561009f57600080fd5b5061013b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061045f565b60405180826000191660001916815260200191505060405180910390f35b34801561016557600080fd5b5061016e6106e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bc57600080fd5b506101f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061070d565b005b3480156101ff57600080fd5b506102086108f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028f57600080fd5b50610298610929565b005b3480156102a657600080fd5b506102c96004803603810190808035600019169060200190929190505050610933565b6040518082815260200191505060405180910390f35b3480156102eb57600080fd5b506103cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094b565b005b3480156103db57600080fd5b506103e4610c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610424578082015181840152602081019050610409565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561060357805182526020820191506020810190506020830392506105de565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561063157fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156106af578051825260208201915060208101905060208303925061068a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610931610c53565b565b60026020528060005260406000206000915090505481565b600061095a878787878761045f565b90506000600260008360001916600019168152602001908152602001600020541415156109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109f98183610d46565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ad357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b13578082015181840152602081019050610af8565b50505050905090810190601f168015610b405780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d6020811015610b8c57600080fd5b81019080805190602001909291905050501515610c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b81019080805190602001909291905050509050600091505b8082101561107257610e2b86868461107a565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b505050506040513d6020811015610f1457600080fd5b81019080805190602001909291905050501515610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050610e18565b505050505050565b60008060008061108a8686611123565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561110d573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820a48bbf0ad2bc336bfcfefa06097ad1574518b511dc1e366dc303d515890088810029", - "sourceMap": "320:2840:19:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;320:2840:19;;;;;;;", - "deployedSourceMap": "320:2840:19:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2829:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2829:329:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;383:52:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;383:52:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;673:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;673:65:19;;;;;;579:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;579:46:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1203:634;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1203:634:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;441:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;441:40:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2829:329;3032:7;3094:4;3089:10;;3106:1;3101:7;;3110:4;3116:2;3120:5;3127:4;3133:9;3144:5;3072:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;3072:78:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3072:78:19;;;3062:89;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;3062:89:19;;;;;;;;;;;;;;;;3055:96;;2829:329;;;;;;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;626:248:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;383:52:19:-;;;;;;;;;;;;;;;;;;;;:::o;673:65::-;719:12;:10;:12::i;:::-;673:65::o;579:46::-;;;;;;;;;;;;;;;;;:::o;1203:634::-;1413:23;1439:53;1458:2;1462:5;1469:4;1475:9;1486:5;1439:18;:53::i;:::-;1413:79;;1541:1;1510:10;:27;1521:15;1510:27;;;;;;;;;;;;;;;;;;:32;1502:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1585:38;1595:15;1612:10;1585:9;:38::i;:::-;1716:1;1686:10;:27;1697:15;1686:27;;;;;;;;;;;;;;;;;:31;;;;1735:7;;;;;;;;;;;:33;;;1769:2;1773:5;1780:4;1786:9;1735: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;1735:61:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1735:61:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1735:61:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1735:61:19;;;;;;;;;;;;;;;;1727:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1203:634;;;;;;;:::o;441:40::-;;;;;;;;;;;;;;;;;;;;:::o;442:300:4:-;656:1;644:7;;;;;;;;;;;636:21;;;628:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;724:10;700:7;;:35;;;;;;;;;;;;;;;;;;442:300::o;1843:708:19:-;2001:17;2041:20;2071:9;2090:17;2029:1;2001:30;;2123:7;;;;;;;;;;;2110:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2110:36:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2110:36:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2110:36:19;;;;;;;;;;;;;;;;2090:56;;2207:1;2203:5;;2198:347;2214:9;2210:1;:13;2198:347;;;2259:42;2270:15;2287:10;2299:1;2259:10;:42::i;:::-;2244:57;;2336:7;;;;;;;;;;;2323:29;;;2353:12;2323:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2323:43:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2323:43:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2323:43:19;;;;;;;;;;;;;;;;2315:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2439:9;2424:24;;:12;:24;;;2416:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2522:12;2510:24;;2225:3;;;;;;;2198:347;;;1843:708;;;;;;:::o;485:340:12:-;642:7;666;683:9;702;733:37;748:16;766:3;733:14;:37::i;:::-;721:49;;;;;;;;;;;;787:31;797:11;810:1;813;816;787:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;787:31:12;;;;;;;;780:38;;485:340;;;;;;;;:::o;1002:914::-;1104:7;1113:9;1124;1424:3;1418:4;1414:14;1486:4;1472:12;1468:23;1456:10;1452:40;1446:47;1441:52;;1551:4;1537:12;1533:23;1521:10;1517:40;1511:47;1506:52;;1895:4;1886;1872:12;1868:23;1856:10;1852:40;1846:47;1842:58;1837:63;;1380:530;;;;;;:::o", - "source": "pragma solidity 0.4.24;\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.0.2\";\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 data, \n Enum.Operation operation, \n uint256 nonce,\n bytes 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 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(manager).getThreshold();\n // Validate threshold is reached.\n for (i = 0; i < threshold; i++) {\n currentOwner = recoverKey(transactionHash, signatures, i);\n require(OwnerManager(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 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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", "exportedSymbols": { "StateChannelModule": [ - 2562 + 2851 ] }, - "id": 2563, + "id": 2852, "nodeType": "SourceUnit", "nodes": [ { - "id": 2377, + "id": 2662, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:19" + "src": "0:23:20" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "../base/Module.sol", - "id": 2378, + "id": 2663, "nodeType": "ImportDirective", - "scope": 2563, - "sourceUnit": 936, - "src": "24:28:19", + "scope": 2852, + "sourceUnit": 1021, + "src": "24:28:20", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", "file": "../base/OwnerManager.sol", - "id": 2379, + "id": 2664, "nodeType": "ImportDirective", - "scope": 2563, - "sourceUnit": 1653, - "src": "53:34:19", + "scope": 2852, + "sourceUnit": 1797, + "src": "53:34:20", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", "file": "../common/SignatureDecoder.sol", - "id": 2380, + "id": 2665, "nodeType": "ImportDirective", - "scope": 2563, - "sourceUnit": 1792, - "src": "88:40:19", + "scope": 2852, + "sourceUnit": 1938, + "src": "88:40:20", "symbolAliases": [], "unitAlias": "" }, @@ -220,66 +221,66 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2381, + "id": 2666, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "351:6:19", + "referencedDeclaration": 1020, + "src": "351:6:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, - "id": 2382, + "id": 2667, "nodeType": "InheritanceSpecifier", - "src": "351:6:19" + "src": "351:6:20" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2383, + "id": 2668, "name": "SignatureDecoder", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1791, - "src": "359:16:19", + "referencedDeclaration": 1937, + "src": "359:16:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureDecoder_$1791", + "typeIdentifier": "t_contract$_SignatureDecoder_$1937", "typeString": "contract SignatureDecoder" } }, - "id": 2384, + "id": 2669, "nodeType": "InheritanceSpecifier", - "src": "359:16:19" + "src": "359:16:20" } ], "contractDependencies": [ - 935, - 1693, - 1735, - 1791 + 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": 2562, + "id": 2851, "linearizedBaseContracts": [ - 2562, - 1791, - 935, - 1693, - 1735 + 2851, + 1937, + 1020, + 1839, + 1881 ], "name": "StateChannelModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2387, + "id": 2672, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2562, - "src": "383:52:19", + "scope": 2851, + "src": "383:52:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -287,10 +288,10 @@ "typeString": "string" }, "typeName": { - "id": 2385, + "id": 2670, "name": "string", "nodeType": "ElementaryTypeName", - "src": "383:6:19", + "src": "383:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -299,14 +300,14 @@ "value": { "argumentTypes": null, "hexValue": "5374617465204368616e6e656c204d6f64756c65", - "id": 2386, + "id": 2671, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "413:22:19", + "src": "413:22:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e66fa361bdba11103aaf2321b03707a79b393abf1f410f3f609398777fd3a713", @@ -318,11 +319,11 @@ }, { "constant": true, - "id": 2390, + "id": 2675, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2562, - "src": "441:40:19", + "scope": 2851, + "src": "441:40:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -330,10 +331,10 @@ "typeString": "string" }, "typeName": { - "id": 2388, + "id": 2673, "name": "string", "nodeType": "ElementaryTypeName", - "src": "441:6:19", + "src": "441:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -341,31 +342,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e32", - "id": 2389, + "hexValue": "302e312e30", + "id": 2674, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "474:7:19", + "src": "474:7:20", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" + "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", + "typeString": "literal_string \"0.1.0\"" }, - "value": "0.0.2" + "value": "0.1.0" }, "visibility": "public" }, { "constant": false, - "id": 2394, + "id": 2679, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 2562, - "src": "579:46:19", + "scope": 2851, + "src": "579:46:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -373,28 +374,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 2393, + "id": 2678, "keyType": { - "id": 2391, + "id": 2676, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "588:7:19", + "src": "588:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "579:28:19", + "src": "579:28:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 2392, + "id": 2677, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "599:7:19", + "src": "599:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -406,9 +407,9 @@ }, { "body": { - "id": 2400, + "id": 2685, "nodeType": "Block", - "src": "709:29:19", + "src": "709:29:20", "statements": [ { "expression": { @@ -416,18 +417,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2397, + "id": 2682, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "719:10:19", + "referencedDeclaration": 1019, + "src": "719:10:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2398, + "id": 2683, "isConstant": false, "isLValue": false, "isPure": false, @@ -435,63 +436,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "719:12:19", + "src": "719:12:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2399, + "id": 2684, "nodeType": "ExpressionStatement", - "src": "719:12:19" + "src": "719:12:20" } ] }, "documentation": "@dev Setup function sets manager", - "id": 2401, + "id": 2686, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2395, + "id": 2680, "nodeType": "ParameterList", "parameters": [], - "src": "687:2:19" + "src": "687:2:20" }, - "payable": false, "returnParameters": { - "id": 2396, + "id": 2681, "nodeType": "ParameterList", "parameters": [], - "src": "709:0:19" + "src": "709:0:20" }, - "scope": 2562, - "src": "673:65:19", + "scope": 2851, + "src": "673:65:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2457, + "id": 2742, "nodeType": "Block", - "src": "1403:434:19", + "src": "1417:434:20", "statements": [ { "assignments": [ - 2417 + 2702 ], "declarations": [ { "constant": false, - "id": 2417, + "id": 2702, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1413:23:19", + "scope": 2742, + "src": "1427:23:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -499,10 +498,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2416, + "id": 2701, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1413:7:19", + "src": "1427:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -512,18 +511,18 @@ "visibility": "internal" } ], - "id": 2425, + "id": 2710, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2419, + "id": 2704, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2403, - "src": "1458:2:19", + "referencedDeclaration": 2688, + "src": "1472:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -531,12 +530,12 @@ }, { "argumentTypes": null, - "id": 2420, + "id": 2705, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2405, - "src": "1462:5:19", + "referencedDeclaration": 2690, + "src": "1476:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -544,12 +543,12 @@ }, { "argumentTypes": null, - "id": 2421, + "id": 2706, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "1469:4:19", + "referencedDeclaration": 2692, + "src": "1483:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -557,25 +556,25 @@ }, { "argumentTypes": null, - "id": 2422, + "id": 2707, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "1475:9:19", + "referencedDeclaration": 2694, + "src": "1489:9:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 2423, + "id": 2708, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2411, - "src": "1486:5:19", + "referencedDeclaration": 2696, + "src": "1500:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -597,7 +596,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -605,18 +604,18 @@ "typeString": "uint256" } ], - "id": 2418, + "id": 2703, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "1439:18:19", + "referencedDeclaration": 2850, + "src": "1453:18:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bytes32_$", + "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": 2424, + "id": 2709, "isConstant": false, "isLValue": false, "isPure": false, @@ -624,14 +623,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1439:53:19", + "src": "1453:53:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1413:79:19" + "src": "1427:79:20" }, { "expression": { @@ -643,7 +642,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2431, + "id": 2716, "isConstant": false, "isLValue": false, "isPure": false, @@ -652,26 +651,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2427, + "id": 2712, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2394, - "src": "1510:10:19", + "referencedDeclaration": 2679, + "src": "1524:10:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 2429, + "id": 2714, "indexExpression": { "argumentTypes": null, - "id": 2428, + "id": 2713, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "1521:15:19", + "referencedDeclaration": 2702, + "src": "1535:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -682,7 +681,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1510:27:19", + "src": "1524:27:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -693,14 +692,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2430, + "id": 2715, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1541:1:19", + "src": "1555:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -708,7 +707,7 @@ }, "value": "0" }, - "src": "1510:32:19", + "src": "1524:32:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -717,14 +716,14 @@ { "argumentTypes": null, "hexValue": "5472616e73616374696f6e20616c7265616479206578656375746564", - "id": 2432, + "id": 2717, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1544:30:19", + "src": "1558:30:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3c3f7cf602281cf7a98efd78d98ba46309975dadee18bcb57e640145699bd800", @@ -744,21 +743,21 @@ "typeString": "literal_string \"Transaction already executed\"" } ], - "id": 2426, + "id": 2711, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1502:7:19", + "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": 2433, + "id": 2718, "isConstant": false, "isLValue": false, "isPure": false, @@ -766,15 +765,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1502:73:19", + "src": "1516:73:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2434, + "id": 2719, "nodeType": "ExpressionStatement", - "src": "1502:73:19" + "src": "1516:73:20" }, { "expression": { @@ -782,12 +781,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2436, + "id": 2721, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "1595:15:19", + "referencedDeclaration": 2702, + "src": "1609:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -795,12 +794,12 @@ }, { "argumentTypes": null, - "id": 2437, + "id": 2722, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "1612:10:19", + "referencedDeclaration": 2698, + "src": "1626:10:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -818,18 +817,18 @@ "typeString": "bytes memory" } ], - "id": 2435, + "id": 2720, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2527, - "src": "1585:9:19", + "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": 2438, + "id": 2723, "isConstant": false, "isLValue": false, "isPure": false, @@ -837,20 +836,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1585:38:19", + "src": "1599:38:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2439, + "id": 2724, "nodeType": "ExpressionStatement", - "src": "1585:38:19" + "src": "1599:38:20" }, { "expression": { "argumentTypes": null, - "id": 2444, + "id": 2729, "isConstant": false, "isLValue": false, "isPure": false, @@ -859,26 +858,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2440, + "id": 2725, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2394, - "src": "1686:10:19", + "referencedDeclaration": 2679, + "src": "1700:10:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 2442, + "id": 2727, "indexExpression": { "argumentTypes": null, - "id": 2441, + "id": 2726, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "1697:15:19", + "referencedDeclaration": 2702, + "src": "1711:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -889,7 +888,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1686:27:19", + "src": "1700:27:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -900,14 +899,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 2443, + "id": 2728, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1716:1:19", + "src": "1730:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -915,15 +914,15 @@ }, "value": "1" }, - "src": "1686:31:19", + "src": "1700:31:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2445, + "id": 2730, "nodeType": "ExpressionStatement", - "src": "1686:31:19" + "src": "1700:31:20" }, { "expression": { @@ -934,12 +933,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2449, + "id": 2734, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2403, - "src": "1769:2:19", + "referencedDeclaration": 2688, + "src": "1783:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -947,12 +946,12 @@ }, { "argumentTypes": null, - "id": 2450, + "id": 2735, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2405, - "src": "1773:5:19", + "referencedDeclaration": 2690, + "src": "1787:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -960,12 +959,12 @@ }, { "argumentTypes": null, - "id": 2451, + "id": 2736, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "1780:4:19", + "referencedDeclaration": 2692, + "src": "1794:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -973,14 +972,14 @@ }, { "argumentTypes": null, - "id": 2452, + "id": 2737, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "1786:9:19", + "referencedDeclaration": 2694, + "src": "1800:9:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } } @@ -1000,38 +999,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2447, + "id": 2732, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "1735:7:19", + "referencedDeclaration": 983, + "src": "1749:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "id": 2448, + "id": 2733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "1735:33:19", + "referencedDeclaration": 1256, + "src": "1749:33:20", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", + "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": 2453, + "id": 2738, "isConstant": false, "isLValue": false, "isPure": false, @@ -1039,7 +1038,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1735:61:19", + "src": "1749:61:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1048,14 +1047,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2454, + "id": 2739, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1798:31:19", + "src": "1812:31:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", @@ -1075,21 +1074,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 2446, + "id": 2731, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1727:7:19", + "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": 2455, + "id": 2740, "isConstant": false, "isLValue": false, "isPure": false, @@ -1097,37 +1096,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1727:103:19", + "src": "1741:103:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2456, + "id": 2741, "nodeType": "ExpressionStatement", - "src": "1727:103:19" + "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": 2458, + "id": 2743, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "execTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 2414, + "id": 2699, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2403, + "id": 2688, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1237:10:19", + "scope": 2743, + "src": "1237:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1135,10 +1133,11 @@ "typeString": "address" }, "typeName": { - "id": 2402, + "id": 2687, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1237:7:19", + "src": "1237:7:20", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1149,11 +1148,11 @@ }, { "constant": false, - "id": 2405, + "id": 2690, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1258:13:19", + "scope": 2743, + "src": "1258:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1161,10 +1160,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2404, + "id": 2689, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1258:7:19", + "src": "1258:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1175,22 +1174,22 @@ }, { "constant": false, - "id": 2407, + "id": 2692, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1282:10:19", + "scope": 2743, + "src": "1282:17:20", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2406, + "id": 2691, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1282:5:19", + "src": "1282:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1201,26 +1200,26 @@ }, { "constant": false, - "id": 2409, + "id": 2694, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1303:24:19", + "scope": 2743, + "src": "1310:24:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 2408, + "id": 2693, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "1303:14:19", + "referencedDeclaration": 1802, + "src": "1310:14:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -1229,11 +1228,11 @@ }, { "constant": false, - "id": 2411, + "id": 2696, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1338:13:19", + "scope": 2743, + "src": "1345:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1241,10 +1240,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2410, + "id": 2695, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1338:7:19", + "src": "1345:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1255,22 +1254,22 @@ }, { "constant": false, - "id": 2413, + "id": 2698, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1361:16:19", + "scope": 2743, + "src": "1368:23:20", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2412, + "id": 2697, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1361:5:19", + "src": "1368:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1280,39 +1279,38 @@ "visibility": "internal" } ], - "src": "1227:156:19" + "src": "1227:170:20" }, - "payable": false, "returnParameters": { - "id": 2415, + "id": 2700, "nodeType": "ParameterList", "parameters": [], - "src": "1403:0:19" + "src": "1417:0:20" }, - "scope": 2562, - "src": "1203:634:19", + "scope": 2851, + "src": "1203:648:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2526, + "id": 2815, "nodeType": "Block", - "src": "1939:612:19", + "src": "1960:630:20", "statements": [ { "assignments": [ - 2466 + 2751 ], "declarations": [ { "constant": false, - "id": 2466, + "id": 2751, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2001:17:19", + "scope": 2815, + "src": "2022:17:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1320,10 +1318,11 @@ "typeString": "address" }, "typeName": { - "id": 2465, + "id": 2750, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2001:7:19", + "src": "2022:7:20", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1333,21 +1332,21 @@ "visibility": "internal" } ], - "id": 2470, + "id": 2755, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 2468, + "id": 2753, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2029:1:19", + "src": "2050:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1363,20 +1362,20 @@ "typeString": "int_const 0" } ], - "id": 2467, + "id": 2752, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2021:7:19", + "src": "2042:7:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2469, + "id": 2754, "isConstant": false, "isLValue": false, "isPure": true, @@ -1384,25 +1383,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2021:10:19", + "src": "2042:10:20", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "VariableDeclarationStatement", - "src": "2001:30:19" + "src": "2022:30:20" }, { - "assignments": [], + "assignments": [ + 2757 + ], "declarations": [ { "constant": false, - "id": 2472, + "id": 2757, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2041:20:19", + "scope": 2815, + "src": "2062:20:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1410,10 +1411,11 @@ "typeString": "address" }, "typeName": { - "id": 2471, + "id": 2756, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2041:7:19", + "src": "2062:7:20", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1423,58 +1425,23 @@ "visibility": "internal" } ], - "id": 2473, + "id": 2758, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "2041:20:19" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 2475, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2071:9:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2474, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2071:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2476, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2071:9:19" + "src": "2062:20:20" }, { "assignments": [ - 2478 + 2760 ], "declarations": [ { "constant": false, - "id": 2478, - "name": "threshold", + "id": 2760, + "name": "i", "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2090:17:19", + "scope": 2815, + "src": "2092:9:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1482,10 +1449,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2477, + "id": 2759, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2090:7:19", + "src": "2092:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1495,7 +1462,44 @@ "visibility": "internal" } ], - "id": 2484, + "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": [], @@ -1506,37 +1510,75 @@ "arguments": [ { "argumentTypes": null, - "id": 2480, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2123:7:19", + "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_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], - "id": 2479, + "id": 2764, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2110:12:19", + "referencedDeclaration": 1796, + "src": "2131:12:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2481, + "id": 2768, "isConstant": false, "isLValue": false, "isPure": false, @@ -1544,27 +1586,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2110:21:19", + "src": "2131:30:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", + "typeIdentifier": "t_contract$_OwnerManager_$1796", "typeString": "contract OwnerManager" } }, - "id": 2482, + "id": 2769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getThreshold", "nodeType": "MemberAccess", - "referencedDeclaration": 1588, - "src": "2110:34:19", + "referencedDeclaration": 1726, + "src": "2131:43:20", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 2483, + "id": 2770, "isConstant": false, "isLValue": false, "isPure": false, @@ -1572,37 +1614,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2110:36:19", + "src": "2131:45:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2090:56:19" + "src": "2111:65:20" }, { "body": { - "id": 2524, + "id": 2813, "nodeType": "Block", - "src": "2230:315:19", + "src": "2260:324:20", "statements": [ { "expression": { "argumentTypes": null, - "id": 2501, + "id": 2788, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2495, + "id": 2782, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2244:12:19", + "referencedDeclaration": 2757, + "src": "2274:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1615,12 +1657,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2497, + "id": 2784, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2460, - "src": "2270:15:19", + "referencedDeclaration": 2745, + "src": "2300:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1628,12 +1670,12 @@ }, { "argumentTypes": null, - "id": 2498, + "id": 2785, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2462, - "src": "2287:10:19", + "referencedDeclaration": 2747, + "src": "2317:10:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1641,12 +1683,12 @@ }, { "argumentTypes": null, - "id": 2499, + "id": 2786, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2299:1:19", + "referencedDeclaration": 2760, + "src": "2329:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1668,18 +1710,18 @@ "typeString": "uint256" } ], - "id": 2496, + "id": 2783, "name": "recoverKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1775, - "src": "2259:10:19", + "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": 2500, + "id": 2787, "isConstant": false, "isLValue": false, "isPure": false, @@ -1687,21 +1729,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2259:42:19", + "src": "2289:42:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2244:57:19", + "src": "2274:57:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2502, + "id": 2789, "nodeType": "ExpressionStatement", - "src": "2244:57:19" + "src": "2274:57:20" }, { "expression": { @@ -1712,12 +1754,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2508, + "id": 2797, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2353:12:19", + "referencedDeclaration": 2757, + "src": "2392:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1736,37 +1778,75 @@ "arguments": [ { "argumentTypes": null, - "id": 2505, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2336:7:19", + "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_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], - "id": 2504, + "id": 2791, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2323:12:19", + "referencedDeclaration": 1796, + "src": "2353:12:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2506, + "id": 2795, "isConstant": false, "isLValue": false, "isPure": false, @@ -1774,27 +1854,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2323:21:19", + "src": "2353:30:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", + "typeIdentifier": "t_contract$_OwnerManager_$1796", "typeString": "contract OwnerManager" } }, - "id": 2507, + "id": 2796, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1602, - "src": "2323:29:19", + "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": 2509, + "id": 2798, "isConstant": false, "isLValue": false, "isPure": false, @@ -1802,7 +1882,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2323:43:19", + "src": "2353:52:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1811,14 +1891,14 @@ { "argumentTypes": null, "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 2510, + "id": 2799, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2368:33:19", + "src": "2407:33:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", @@ -1838,21 +1918,21 @@ "typeString": "literal_string \"Signature not provided by owner\"" } ], - "id": 2503, + "id": 2790, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2315:7:19", + "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": 2511, + "id": 2800, "isConstant": false, "isLValue": false, "isPure": false, @@ -1860,15 +1940,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2315:87:19", + "src": "2345:96:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2512, + "id": 2801, "nodeType": "ExpressionStatement", - "src": "2315:87:19" + "src": "2345:96:20" }, { "expression": { @@ -1880,19 +1960,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2516, + "id": 2805, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2514, + "id": 2803, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2424:12:19", + "referencedDeclaration": 2757, + "src": "2463:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1902,18 +1982,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 2515, + "id": 2804, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "2439:9:19", + "referencedDeclaration": 2751, + "src": "2478:9:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2424:24:19", + "src": "2463:24:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1922,14 +2002,14 @@ { "argumentTypes": null, "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 2517, + "id": 2806, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2450:45:19", + "src": "2489:45:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", @@ -1949,21 +2029,21 @@ "typeString": "literal_string \"Signatures are not ordered by owner address\"" } ], - "id": 2513, + "id": 2802, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2416:7:19", + "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": 2518, + "id": 2807, "isConstant": false, "isLValue": false, "isPure": false, @@ -1971,32 +2051,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2416:80:19", + "src": "2455:80:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2519, + "id": 2808, "nodeType": "ExpressionStatement", - "src": "2416:80:19" + "src": "2455:80:20" }, { "expression": { "argumentTypes": null, - "id": 2522, + "id": 2811, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2520, + "id": 2809, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "2510:9:19", + "referencedDeclaration": 2751, + "src": "2549:9:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2006,26 +2086,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2521, + "id": 2810, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2522:12:19", + "referencedDeclaration": 2757, + "src": "2561:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2510:24:19", + "src": "2549:24:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2523, + "id": 2812, "nodeType": "ExpressionStatement", - "src": "2510:24:19" + "src": "2549:24:20" } ] }, @@ -2035,19 +2115,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2491, + "id": 2778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2489, + "id": 2776, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2210:1:19", + "referencedDeclaration": 2760, + "src": "2240:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2057,40 +2137,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 2490, + "id": 2777, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2478, - "src": "2214:9:19", + "referencedDeclaration": 2763, + "src": "2244:9:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2210:13:19", + "src": "2240:13:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2525, + "id": 2814, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 2487, + "id": 2774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2485, + "id": 2772, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2203:1:19", + "referencedDeclaration": 2760, + "src": "2233:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2101,14 +2181,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2486, + "id": 2773, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2207:1:19", + "src": "2237:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2116,20 +2196,20 @@ }, "value": "0" }, - "src": "2203:5:19", + "src": "2233:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2488, + "id": 2775, "nodeType": "ExpressionStatement", - "src": "2203:5:19" + "src": "2233:5:20" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2493, + "id": 2780, "isConstant": false, "isLValue": false, "isPure": false, @@ -2137,15 +2217,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2225:3:19", + "src": "2255:3:20", "subExpression": { "argumentTypes": null, - "id": 2492, + "id": 2779, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2225:1:19", + "referencedDeclaration": 2760, + "src": "2255:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2156,34 +2236,33 @@ "typeString": "uint256" } }, - "id": 2494, + "id": 2781, "nodeType": "ExpressionStatement", - "src": "2225:3:19" + "src": "2255:3:20" }, "nodeType": "ForStatement", - "src": "2198:347:19" + "src": "2228:356:20" } ] }, "documentation": null, - "id": 2527, + "id": 2816, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2463, + "id": 2748, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2460, + "id": 2745, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "1862:23:19", + "scope": 2816, + "src": "1876:23:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2191,10 +2270,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2459, + "id": 2744, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1862:7:19", + "src": "1876:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2205,22 +2284,22 @@ }, { "constant": false, - "id": 2462, + "id": 2747, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "1887:16:19", + "scope": 2816, + "src": "1901:23:20", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2461, + "id": 2746, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1887:5:19", + "src": "1901:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2230,26 +2309,25 @@ "visibility": "internal" } ], - "src": "1861:43:19" + "src": "1875:50:20" }, - "payable": false, "returnParameters": { - "id": 2464, + "id": 2749, "nodeType": "ParameterList", "parameters": [], - "src": "1939:0:19" + "src": "1960:0:20" }, - "scope": 2562, - "src": "1843:708:19", + "scope": 2851, + "src": "1857:733:20", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2560, + "id": 2849, "nodeType": "Block", - "src": "3045:113:19", + "src": "3091:113:20", "statements": [ { "expression": { @@ -2264,14 +2342,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 2546, + "id": 2835, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3094:4:19", + "src": "3140:4:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -2287,20 +2365,20 @@ "typeString": "int_const 25" } ], - "id": 2545, + "id": 2834, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3089:4:19", + "src": "3135:4:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 2547, + "id": 2836, "isConstant": false, "isLValue": false, "isPure": true, @@ -2308,7 +2386,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3089:10:19", + "src": "3135:10:20", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -2320,14 +2398,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2549, + "id": 2838, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3106:1:19", + "src": "3152:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2343,20 +2421,20 @@ "typeString": "int_const 0" } ], - "id": 2548, + "id": 2837, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3101:4:19", + "src": "3147:4:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 2550, + "id": 2839, "isConstant": false, "isLValue": false, "isPure": true, @@ -2364,7 +2442,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3101:7:19", + "src": "3147:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -2372,25 +2450,25 @@ }, { "argumentTypes": null, - "id": 2551, + "id": 2840, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4070, - "src": "3110:4:19", + "referencedDeclaration": 4424, + "src": "3156:4:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_StateChannelModule_$2562", + "typeIdentifier": "t_contract$_StateChannelModule_$2851", "typeString": "contract StateChannelModule" } }, { "argumentTypes": null, - "id": 2552, + "id": 2841, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2529, - "src": "3116:2:19", + "referencedDeclaration": 2818, + "src": "3162:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2398,12 +2476,12 @@ }, { "argumentTypes": null, - "id": 2553, + "id": 2842, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2531, - "src": "3120:5:19", + "referencedDeclaration": 2820, + "src": "3166:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2411,12 +2489,12 @@ }, { "argumentTypes": null, - "id": 2554, + "id": 2843, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "3127:4:19", + "referencedDeclaration": 2822, + "src": "3173:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2424,25 +2502,25 @@ }, { "argumentTypes": null, - "id": 2555, + "id": 2844, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "3133:9:19", + "referencedDeclaration": 2824, + "src": "3179:9:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 2556, + "id": 2845, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2537, - "src": "3144:5:19", + "referencedDeclaration": 2826, + "src": "3190:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2460,7 +2538,7 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_StateChannelModule_$2562", + "typeIdentifier": "t_contract$_StateChannelModule_$2851", "typeString": "contract StateChannelModule" }, { @@ -2476,7 +2554,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -2486,18 +2564,18 @@ ], "expression": { "argumentTypes": null, - "id": 2543, + "id": 2832, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "3072:3:19", + "referencedDeclaration": 4353, + "src": "3118:3:20", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 2544, + "id": 2833, "isConstant": false, "isLValue": false, "isPure": true, @@ -2505,13 +2583,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3072:16:19", + "src": "3118:16:20", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2557, + "id": 2846, "isConstant": false, "isLValue": false, "isPure": false, @@ -2519,7 +2597,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3072:78:19", + "src": "3118:78:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2533,18 +2611,18 @@ "typeString": "bytes memory" } ], - "id": 2542, + "id": 2831, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3062:9:19", + "referencedDeclaration": 4360, + "src": "3108:9:20", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2558, + "id": 2847, "isConstant": false, "isLValue": false, "isPure": false, @@ -2552,38 +2630,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3062:89:19", + "src": "3108:89:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 2541, - "id": 2559, + "functionReturnParameters": 2830, + "id": 2848, "nodeType": "Return", - "src": "3055:96:19" + "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": 2561, + "id": 2850, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2538, + "id": 2827, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2529, + "id": 2818, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2866:10:19", + "scope": 2850, + "src": "2905:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2591,10 +2668,11 @@ "typeString": "address" }, "typeName": { - "id": 2528, + "id": 2817, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2866:7:19", + "src": "2905:7:20", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2605,11 +2683,11 @@ }, { "constant": false, - "id": 2531, + "id": 2820, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2887:13:19", + "scope": 2850, + "src": "2926:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2617,10 +2695,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2530, + "id": 2819, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2887:7:19", + "src": "2926:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2631,22 +2709,22 @@ }, { "constant": false, - "id": 2533, + "id": 2822, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2911:10:19", + "scope": 2850, + "src": "2950:17:20", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2532, + "id": 2821, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2911:5:19", + "src": "2950:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2657,26 +2735,26 @@ }, { "constant": false, - "id": 2535, + "id": 2824, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2932:24:19", + "scope": 2850, + "src": "2978:24:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 2534, + "id": 2823, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "2932:14:19", + "referencedDeclaration": 1802, + "src": "2978:14:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -2685,11 +2763,11 @@ }, { "constant": false, - "id": 2537, + "id": 2826, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2967:13:19", + "scope": 2850, + "src": "3013:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2697,10 +2775,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2536, + "id": 2825, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2967:7:19", + "src": "3013:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2710,20 +2788,19 @@ "visibility": "internal" } ], - "src": "2856:130:19" + "src": "2895:137:20" }, - "payable": false, "returnParameters": { - "id": 2541, + "id": 2830, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2540, + "id": 2829, "name": "", "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "3032:7:19", + "scope": 2850, + "src": "3078:7:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2731,10 +2808,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2539, + "id": 2828, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3032:7:19", + "src": "3078:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2744,71 +2821,72 @@ "visibility": "internal" } ], - "src": "3031:9:19" + "src": "3077:9:20" }, - "scope": 2562, - "src": "2829:329:19", + "scope": 2851, + "src": "2868:336:20", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 2563, - "src": "320:2840:19" + "scope": 2852, + "src": "320:2886:20" } ], - "src": "0:3161:19" + "src": "0:3207:20" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", "exportedSymbols": { "StateChannelModule": [ - 2562 + 2851 ] }, - "id": 2563, + "id": 2852, "nodeType": "SourceUnit", "nodes": [ { - "id": 2377, + "id": 2662, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:19" + "src": "0:23:20" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "../base/Module.sol", - "id": 2378, + "id": 2663, "nodeType": "ImportDirective", - "scope": 2563, - "sourceUnit": 936, - "src": "24:28:19", + "scope": 2852, + "sourceUnit": 1021, + "src": "24:28:20", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", "file": "../base/OwnerManager.sol", - "id": 2379, + "id": 2664, "nodeType": "ImportDirective", - "scope": 2563, - "sourceUnit": 1653, - "src": "53:34:19", + "scope": 2852, + "sourceUnit": 1797, + "src": "53:34:20", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", "file": "../common/SignatureDecoder.sol", - "id": 2380, + "id": 2665, "nodeType": "ImportDirective", - "scope": 2563, - "sourceUnit": 1792, - "src": "88:40:19", + "scope": 2852, + "sourceUnit": 1938, + "src": "88:40:20", "symbolAliases": [], "unitAlias": "" }, @@ -2818,66 +2896,66 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2381, + "id": 2666, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "351:6:19", + "referencedDeclaration": 1020, + "src": "351:6:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, - "id": 2382, + "id": 2667, "nodeType": "InheritanceSpecifier", - "src": "351:6:19" + "src": "351:6:20" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2383, + "id": 2668, "name": "SignatureDecoder", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1791, - "src": "359:16:19", + "referencedDeclaration": 1937, + "src": "359:16:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureDecoder_$1791", + "typeIdentifier": "t_contract$_SignatureDecoder_$1937", "typeString": "contract SignatureDecoder" } }, - "id": 2384, + "id": 2669, "nodeType": "InheritanceSpecifier", - "src": "359:16:19" + "src": "359:16:20" } ], "contractDependencies": [ - 935, - 1693, - 1735, - 1791 + 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": 2562, + "id": 2851, "linearizedBaseContracts": [ - 2562, - 1791, - 935, - 1693, - 1735 + 2851, + 1937, + 1020, + 1839, + 1881 ], "name": "StateChannelModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2387, + "id": 2672, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2562, - "src": "383:52:19", + "scope": 2851, + "src": "383:52:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2885,10 +2963,10 @@ "typeString": "string" }, "typeName": { - "id": 2385, + "id": 2670, "name": "string", "nodeType": "ElementaryTypeName", - "src": "383:6:19", + "src": "383:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2897,14 +2975,14 @@ "value": { "argumentTypes": null, "hexValue": "5374617465204368616e6e656c204d6f64756c65", - "id": 2386, + "id": 2671, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "413:22:19", + "src": "413:22:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e66fa361bdba11103aaf2321b03707a79b393abf1f410f3f609398777fd3a713", @@ -2916,11 +2994,11 @@ }, { "constant": true, - "id": 2390, + "id": 2675, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2562, - "src": "441:40:19", + "scope": 2851, + "src": "441:40:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2928,10 +3006,10 @@ "typeString": "string" }, "typeName": { - "id": 2388, + "id": 2673, "name": "string", "nodeType": "ElementaryTypeName", - "src": "441:6:19", + "src": "441:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2939,31 +3017,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e32", - "id": 2389, + "hexValue": "302e312e30", + "id": 2674, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "474:7:19", + "src": "474:7:20", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" + "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", + "typeString": "literal_string \"0.1.0\"" }, - "value": "0.0.2" + "value": "0.1.0" }, "visibility": "public" }, { "constant": false, - "id": 2394, + "id": 2679, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 2562, - "src": "579:46:19", + "scope": 2851, + "src": "579:46:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2971,28 +3049,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 2393, + "id": 2678, "keyType": { - "id": 2391, + "id": 2676, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "588:7:19", + "src": "588:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "579:28:19", + "src": "579:28:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 2392, + "id": 2677, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "599:7:19", + "src": "599:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3004,9 +3082,9 @@ }, { "body": { - "id": 2400, + "id": 2685, "nodeType": "Block", - "src": "709:29:19", + "src": "709:29:20", "statements": [ { "expression": { @@ -3014,18 +3092,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2397, + "id": 2682, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "719:10:19", + "referencedDeclaration": 1019, + "src": "719:10:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2398, + "id": 2683, "isConstant": false, "isLValue": false, "isPure": false, @@ -3033,63 +3111,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "719:12:19", + "src": "719:12:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2399, + "id": 2684, "nodeType": "ExpressionStatement", - "src": "719:12:19" + "src": "719:12:20" } ] }, "documentation": "@dev Setup function sets manager", - "id": 2401, + "id": 2686, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2395, + "id": 2680, "nodeType": "ParameterList", "parameters": [], - "src": "687:2:19" + "src": "687:2:20" }, - "payable": false, "returnParameters": { - "id": 2396, + "id": 2681, "nodeType": "ParameterList", "parameters": [], - "src": "709:0:19" + "src": "709:0:20" }, - "scope": 2562, - "src": "673:65:19", + "scope": 2851, + "src": "673:65:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2457, + "id": 2742, "nodeType": "Block", - "src": "1403:434:19", + "src": "1417:434:20", "statements": [ { "assignments": [ - 2417 + 2702 ], "declarations": [ { "constant": false, - "id": 2417, + "id": 2702, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1413:23:19", + "scope": 2742, + "src": "1427:23:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3097,10 +3173,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2416, + "id": 2701, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1413:7:19", + "src": "1427:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3110,18 +3186,18 @@ "visibility": "internal" } ], - "id": 2425, + "id": 2710, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2419, + "id": 2704, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2403, - "src": "1458:2:19", + "referencedDeclaration": 2688, + "src": "1472:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3129,12 +3205,12 @@ }, { "argumentTypes": null, - "id": 2420, + "id": 2705, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2405, - "src": "1462:5:19", + "referencedDeclaration": 2690, + "src": "1476:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3142,12 +3218,12 @@ }, { "argumentTypes": null, - "id": 2421, + "id": 2706, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "1469:4:19", + "referencedDeclaration": 2692, + "src": "1483:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3155,25 +3231,25 @@ }, { "argumentTypes": null, - "id": 2422, + "id": 2707, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "1475:9:19", + "referencedDeclaration": 2694, + "src": "1489:9:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 2423, + "id": 2708, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2411, - "src": "1486:5:19", + "referencedDeclaration": 2696, + "src": "1500:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3195,7 +3271,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -3203,18 +3279,18 @@ "typeString": "uint256" } ], - "id": 2418, + "id": 2703, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "1439:18:19", + "referencedDeclaration": 2850, + "src": "1453:18:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bytes32_$", + "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": 2424, + "id": 2709, "isConstant": false, "isLValue": false, "isPure": false, @@ -3222,14 +3298,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1439:53:19", + "src": "1453:53:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1413:79:19" + "src": "1427:79:20" }, { "expression": { @@ -3241,7 +3317,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2431, + "id": 2716, "isConstant": false, "isLValue": false, "isPure": false, @@ -3250,26 +3326,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2427, + "id": 2712, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2394, - "src": "1510:10:19", + "referencedDeclaration": 2679, + "src": "1524:10:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 2429, + "id": 2714, "indexExpression": { "argumentTypes": null, - "id": 2428, + "id": 2713, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "1521:15:19", + "referencedDeclaration": 2702, + "src": "1535:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3280,7 +3356,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1510:27:19", + "src": "1524:27:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3291,14 +3367,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2430, + "id": 2715, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1541:1:19", + "src": "1555:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3306,7 +3382,7 @@ }, "value": "0" }, - "src": "1510:32:19", + "src": "1524:32:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3315,14 +3391,14 @@ { "argumentTypes": null, "hexValue": "5472616e73616374696f6e20616c7265616479206578656375746564", - "id": 2432, + "id": 2717, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1544:30:19", + "src": "1558:30:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3c3f7cf602281cf7a98efd78d98ba46309975dadee18bcb57e640145699bd800", @@ -3342,21 +3418,21 @@ "typeString": "literal_string \"Transaction already executed\"" } ], - "id": 2426, + "id": 2711, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1502:7:19", + "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": 2433, + "id": 2718, "isConstant": false, "isLValue": false, "isPure": false, @@ -3364,15 +3440,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1502:73:19", + "src": "1516:73:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2434, + "id": 2719, "nodeType": "ExpressionStatement", - "src": "1502:73:19" + "src": "1516:73:20" }, { "expression": { @@ -3380,12 +3456,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2436, + "id": 2721, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "1595:15:19", + "referencedDeclaration": 2702, + "src": "1609:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3393,12 +3469,12 @@ }, { "argumentTypes": null, - "id": 2437, + "id": 2722, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "1612:10:19", + "referencedDeclaration": 2698, + "src": "1626:10:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3416,18 +3492,18 @@ "typeString": "bytes memory" } ], - "id": 2435, + "id": 2720, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2527, - "src": "1585:9:19", + "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": 2438, + "id": 2723, "isConstant": false, "isLValue": false, "isPure": false, @@ -3435,20 +3511,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1585:38:19", + "src": "1599:38:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2439, + "id": 2724, "nodeType": "ExpressionStatement", - "src": "1585:38:19" + "src": "1599:38:20" }, { "expression": { "argumentTypes": null, - "id": 2444, + "id": 2729, "isConstant": false, "isLValue": false, "isPure": false, @@ -3457,26 +3533,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2440, + "id": 2725, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2394, - "src": "1686:10:19", + "referencedDeclaration": 2679, + "src": "1700:10:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 2442, + "id": 2727, "indexExpression": { "argumentTypes": null, - "id": 2441, + "id": 2726, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "1697:15:19", + "referencedDeclaration": 2702, + "src": "1711:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3487,7 +3563,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1686:27:19", + "src": "1700:27:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3498,14 +3574,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 2443, + "id": 2728, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1716:1:19", + "src": "1730:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3513,15 +3589,15 @@ }, "value": "1" }, - "src": "1686:31:19", + "src": "1700:31:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2445, + "id": 2730, "nodeType": "ExpressionStatement", - "src": "1686:31:19" + "src": "1700:31:20" }, { "expression": { @@ -3532,12 +3608,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2449, + "id": 2734, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2403, - "src": "1769:2:19", + "referencedDeclaration": 2688, + "src": "1783:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3545,12 +3621,12 @@ }, { "argumentTypes": null, - "id": 2450, + "id": 2735, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2405, - "src": "1773:5:19", + "referencedDeclaration": 2690, + "src": "1787:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3558,12 +3634,12 @@ }, { "argumentTypes": null, - "id": 2451, + "id": 2736, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "1780:4:19", + "referencedDeclaration": 2692, + "src": "1794:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3571,14 +3647,14 @@ }, { "argumentTypes": null, - "id": 2452, + "id": 2737, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "1786:9:19", + "referencedDeclaration": 2694, + "src": "1800:9:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } } @@ -3598,38 +3674,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2447, + "id": 2732, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "1735:7:19", + "referencedDeclaration": 983, + "src": "1749:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "id": 2448, + "id": 2733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "1735:33:19", + "referencedDeclaration": 1256, + "src": "1749:33:20", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", + "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": 2453, + "id": 2738, "isConstant": false, "isLValue": false, "isPure": false, @@ -3637,7 +3713,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1735:61:19", + "src": "1749:61:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3646,14 +3722,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2454, + "id": 2739, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1798:31:19", + "src": "1812:31:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", @@ -3673,21 +3749,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 2446, + "id": 2731, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1727:7:19", + "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": 2455, + "id": 2740, "isConstant": false, "isLValue": false, "isPure": false, @@ -3695,37 +3771,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1727:103:19", + "src": "1741:103:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2456, + "id": 2741, "nodeType": "ExpressionStatement", - "src": "1727:103:19" + "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": 2458, + "id": 2743, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "execTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 2414, + "id": 2699, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2403, + "id": 2688, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1237:10:19", + "scope": 2743, + "src": "1237:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3733,10 +3808,11 @@ "typeString": "address" }, "typeName": { - "id": 2402, + "id": 2687, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1237:7:19", + "src": "1237:7:20", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3747,11 +3823,11 @@ }, { "constant": false, - "id": 2405, + "id": 2690, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1258:13:19", + "scope": 2743, + "src": "1258:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3759,10 +3835,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2404, + "id": 2689, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1258:7:19", + "src": "1258:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3773,22 +3849,22 @@ }, { "constant": false, - "id": 2407, + "id": 2692, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1282:10:19", + "scope": 2743, + "src": "1282:17:20", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2406, + "id": 2691, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1282:5:19", + "src": "1282:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3799,26 +3875,26 @@ }, { "constant": false, - "id": 2409, + "id": 2694, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1303:24:19", + "scope": 2743, + "src": "1310:24:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 2408, + "id": 2693, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "1303:14:19", + "referencedDeclaration": 1802, + "src": "1310:14:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -3827,11 +3903,11 @@ }, { "constant": false, - "id": 2411, + "id": 2696, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1338:13:19", + "scope": 2743, + "src": "1345:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3839,10 +3915,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2410, + "id": 2695, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1338:7:19", + "src": "1345:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3853,22 +3929,22 @@ }, { "constant": false, - "id": 2413, + "id": 2698, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1361:16:19", + "scope": 2743, + "src": "1368:23:20", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2412, + "id": 2697, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1361:5:19", + "src": "1368:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3878,39 +3954,38 @@ "visibility": "internal" } ], - "src": "1227:156:19" + "src": "1227:170:20" }, - "payable": false, "returnParameters": { - "id": 2415, + "id": 2700, "nodeType": "ParameterList", "parameters": [], - "src": "1403:0:19" + "src": "1417:0:20" }, - "scope": 2562, - "src": "1203:634:19", + "scope": 2851, + "src": "1203:648:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2526, + "id": 2815, "nodeType": "Block", - "src": "1939:612:19", + "src": "1960:630:20", "statements": [ { "assignments": [ - 2466 + 2751 ], "declarations": [ { "constant": false, - "id": 2466, + "id": 2751, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2001:17:19", + "scope": 2815, + "src": "2022:17:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3918,10 +3993,11 @@ "typeString": "address" }, "typeName": { - "id": 2465, + "id": 2750, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2001:7:19", + "src": "2022:7:20", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3931,21 +4007,21 @@ "visibility": "internal" } ], - "id": 2470, + "id": 2755, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 2468, + "id": 2753, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2029:1:19", + "src": "2050:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3961,20 +4037,20 @@ "typeString": "int_const 0" } ], - "id": 2467, + "id": 2752, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2021:7:19", + "src": "2042:7:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2469, + "id": 2754, "isConstant": false, "isLValue": false, "isPure": true, @@ -3982,25 +4058,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2021:10:19", + "src": "2042:10:20", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "VariableDeclarationStatement", - "src": "2001:30:19" + "src": "2022:30:20" }, { - "assignments": [], + "assignments": [ + 2757 + ], "declarations": [ { "constant": false, - "id": 2472, + "id": 2757, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2041:20:19", + "scope": 2815, + "src": "2062:20:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4008,10 +4086,11 @@ "typeString": "address" }, "typeName": { - "id": 2471, + "id": 2756, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2041:7:19", + "src": "2062:7:20", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4021,58 +4100,23 @@ "visibility": "internal" } ], - "id": 2473, + "id": 2758, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "2041:20:19" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 2475, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2071:9:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2474, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2071:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2476, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2071:9:19" + "src": "2062:20:20" }, { "assignments": [ - 2478 + 2760 ], "declarations": [ { "constant": false, - "id": 2478, - "name": "threshold", + "id": 2760, + "name": "i", "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2090:17:19", + "scope": 2815, + "src": "2092:9:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4080,10 +4124,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2477, + "id": 2759, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2090:7:19", + "src": "2092:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4093,7 +4137,44 @@ "visibility": "internal" } ], - "id": 2484, + "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": [], @@ -4104,37 +4185,75 @@ "arguments": [ { "argumentTypes": null, - "id": 2480, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2123:7:19", + "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_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], - "id": 2479, + "id": 2764, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2110:12:19", + "referencedDeclaration": 1796, + "src": "2131:12:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2481, + "id": 2768, "isConstant": false, "isLValue": false, "isPure": false, @@ -4142,27 +4261,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2110:21:19", + "src": "2131:30:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", + "typeIdentifier": "t_contract$_OwnerManager_$1796", "typeString": "contract OwnerManager" } }, - "id": 2482, + "id": 2769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getThreshold", "nodeType": "MemberAccess", - "referencedDeclaration": 1588, - "src": "2110:34:19", + "referencedDeclaration": 1726, + "src": "2131:43:20", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 2483, + "id": 2770, "isConstant": false, "isLValue": false, "isPure": false, @@ -4170,37 +4289,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2110:36:19", + "src": "2131:45:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2090:56:19" + "src": "2111:65:20" }, { "body": { - "id": 2524, + "id": 2813, "nodeType": "Block", - "src": "2230:315:19", + "src": "2260:324:20", "statements": [ { "expression": { "argumentTypes": null, - "id": 2501, + "id": 2788, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2495, + "id": 2782, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2244:12:19", + "referencedDeclaration": 2757, + "src": "2274:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4213,12 +4332,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2497, + "id": 2784, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2460, - "src": "2270:15:19", + "referencedDeclaration": 2745, + "src": "2300:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4226,12 +4345,12 @@ }, { "argumentTypes": null, - "id": 2498, + "id": 2785, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2462, - "src": "2287:10:19", + "referencedDeclaration": 2747, + "src": "2317:10:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4239,12 +4358,12 @@ }, { "argumentTypes": null, - "id": 2499, + "id": 2786, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2299:1:19", + "referencedDeclaration": 2760, + "src": "2329:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4266,18 +4385,18 @@ "typeString": "uint256" } ], - "id": 2496, + "id": 2783, "name": "recoverKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1775, - "src": "2259:10:19", + "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": 2500, + "id": 2787, "isConstant": false, "isLValue": false, "isPure": false, @@ -4285,21 +4404,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2259:42:19", + "src": "2289:42:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2244:57:19", + "src": "2274:57:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2502, + "id": 2789, "nodeType": "ExpressionStatement", - "src": "2244:57:19" + "src": "2274:57:20" }, { "expression": { @@ -4310,12 +4429,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2508, + "id": 2797, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2353:12:19", + "referencedDeclaration": 2757, + "src": "2392:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4334,37 +4453,75 @@ "arguments": [ { "argumentTypes": null, - "id": 2505, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2336:7:19", + "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_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], - "id": 2504, + "id": 2791, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2323:12:19", + "referencedDeclaration": 1796, + "src": "2353:12:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2506, + "id": 2795, "isConstant": false, "isLValue": false, "isPure": false, @@ -4372,27 +4529,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2323:21:19", + "src": "2353:30:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", + "typeIdentifier": "t_contract$_OwnerManager_$1796", "typeString": "contract OwnerManager" } }, - "id": 2507, + "id": 2796, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1602, - "src": "2323:29:19", + "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": 2509, + "id": 2798, "isConstant": false, "isLValue": false, "isPure": false, @@ -4400,7 +4557,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2323:43:19", + "src": "2353:52:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4409,14 +4566,14 @@ { "argumentTypes": null, "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 2510, + "id": 2799, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2368:33:19", + "src": "2407:33:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", @@ -4436,21 +4593,21 @@ "typeString": "literal_string \"Signature not provided by owner\"" } ], - "id": 2503, + "id": 2790, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2315:7:19", + "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": 2511, + "id": 2800, "isConstant": false, "isLValue": false, "isPure": false, @@ -4458,15 +4615,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2315:87:19", + "src": "2345:96:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2512, + "id": 2801, "nodeType": "ExpressionStatement", - "src": "2315:87:19" + "src": "2345:96:20" }, { "expression": { @@ -4478,19 +4635,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2516, + "id": 2805, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2514, + "id": 2803, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2424:12:19", + "referencedDeclaration": 2757, + "src": "2463:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4500,18 +4657,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 2515, + "id": 2804, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "2439:9:19", + "referencedDeclaration": 2751, + "src": "2478:9:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2424:24:19", + "src": "2463:24:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4520,14 +4677,14 @@ { "argumentTypes": null, "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 2517, + "id": 2806, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2450:45:19", + "src": "2489:45:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", @@ -4547,21 +4704,21 @@ "typeString": "literal_string \"Signatures are not ordered by owner address\"" } ], - "id": 2513, + "id": 2802, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2416:7:19", + "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": 2518, + "id": 2807, "isConstant": false, "isLValue": false, "isPure": false, @@ -4569,32 +4726,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2416:80:19", + "src": "2455:80:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2519, + "id": 2808, "nodeType": "ExpressionStatement", - "src": "2416:80:19" + "src": "2455:80:20" }, { "expression": { "argumentTypes": null, - "id": 2522, + "id": 2811, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2520, + "id": 2809, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "2510:9:19", + "referencedDeclaration": 2751, + "src": "2549:9:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4604,26 +4761,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2521, + "id": 2810, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2522:12:19", + "referencedDeclaration": 2757, + "src": "2561:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2510:24:19", + "src": "2549:24:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2523, + "id": 2812, "nodeType": "ExpressionStatement", - "src": "2510:24:19" + "src": "2549:24:20" } ] }, @@ -4633,19 +4790,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2491, + "id": 2778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2489, + "id": 2776, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2210:1:19", + "referencedDeclaration": 2760, + "src": "2240:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4655,40 +4812,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 2490, + "id": 2777, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2478, - "src": "2214:9:19", + "referencedDeclaration": 2763, + "src": "2244:9:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2210:13:19", + "src": "2240:13:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2525, + "id": 2814, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 2487, + "id": 2774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2485, + "id": 2772, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2203:1:19", + "referencedDeclaration": 2760, + "src": "2233:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4699,14 +4856,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2486, + "id": 2773, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2207:1:19", + "src": "2237:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4714,20 +4871,20 @@ }, "value": "0" }, - "src": "2203:5:19", + "src": "2233:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2488, + "id": 2775, "nodeType": "ExpressionStatement", - "src": "2203:5:19" + "src": "2233:5:20" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2493, + "id": 2780, "isConstant": false, "isLValue": false, "isPure": false, @@ -4735,15 +4892,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2225:3:19", + "src": "2255:3:20", "subExpression": { "argumentTypes": null, - "id": 2492, + "id": 2779, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2225:1:19", + "referencedDeclaration": 2760, + "src": "2255:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4754,34 +4911,33 @@ "typeString": "uint256" } }, - "id": 2494, + "id": 2781, "nodeType": "ExpressionStatement", - "src": "2225:3:19" + "src": "2255:3:20" }, "nodeType": "ForStatement", - "src": "2198:347:19" + "src": "2228:356:20" } ] }, "documentation": null, - "id": 2527, + "id": 2816, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2463, + "id": 2748, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2460, + "id": 2745, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "1862:23:19", + "scope": 2816, + "src": "1876:23:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4789,10 +4945,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2459, + "id": 2744, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1862:7:19", + "src": "1876:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4803,22 +4959,22 @@ }, { "constant": false, - "id": 2462, + "id": 2747, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "1887:16:19", + "scope": 2816, + "src": "1901:23:20", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2461, + "id": 2746, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1887:5:19", + "src": "1901:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4828,26 +4984,25 @@ "visibility": "internal" } ], - "src": "1861:43:19" + "src": "1875:50:20" }, - "payable": false, "returnParameters": { - "id": 2464, + "id": 2749, "nodeType": "ParameterList", "parameters": [], - "src": "1939:0:19" + "src": "1960:0:20" }, - "scope": 2562, - "src": "1843:708:19", + "scope": 2851, + "src": "1857:733:20", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2560, + "id": 2849, "nodeType": "Block", - "src": "3045:113:19", + "src": "3091:113:20", "statements": [ { "expression": { @@ -4862,14 +5017,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 2546, + "id": 2835, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3094:4:19", + "src": "3140:4:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -4885,20 +5040,20 @@ "typeString": "int_const 25" } ], - "id": 2545, + "id": 2834, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3089:4:19", + "src": "3135:4:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 2547, + "id": 2836, "isConstant": false, "isLValue": false, "isPure": true, @@ -4906,7 +5061,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3089:10:19", + "src": "3135:10:20", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -4918,14 +5073,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2549, + "id": 2838, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3106:1:19", + "src": "3152:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4941,20 +5096,20 @@ "typeString": "int_const 0" } ], - "id": 2548, + "id": 2837, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3101:4:19", + "src": "3147:4:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 2550, + "id": 2839, "isConstant": false, "isLValue": false, "isPure": true, @@ -4962,7 +5117,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3101:7:19", + "src": "3147:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -4970,25 +5125,25 @@ }, { "argumentTypes": null, - "id": 2551, + "id": 2840, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4070, - "src": "3110:4:19", + "referencedDeclaration": 4424, + "src": "3156:4:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_StateChannelModule_$2562", + "typeIdentifier": "t_contract$_StateChannelModule_$2851", "typeString": "contract StateChannelModule" } }, { "argumentTypes": null, - "id": 2552, + "id": 2841, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2529, - "src": "3116:2:19", + "referencedDeclaration": 2818, + "src": "3162:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4996,12 +5151,12 @@ }, { "argumentTypes": null, - "id": 2553, + "id": 2842, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2531, - "src": "3120:5:19", + "referencedDeclaration": 2820, + "src": "3166:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5009,12 +5164,12 @@ }, { "argumentTypes": null, - "id": 2554, + "id": 2843, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "3127:4:19", + "referencedDeclaration": 2822, + "src": "3173:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5022,25 +5177,25 @@ }, { "argumentTypes": null, - "id": 2555, + "id": 2844, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "3133:9:19", + "referencedDeclaration": 2824, + "src": "3179:9:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 2556, + "id": 2845, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2537, - "src": "3144:5:19", + "referencedDeclaration": 2826, + "src": "3190:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5058,7 +5213,7 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_StateChannelModule_$2562", + "typeIdentifier": "t_contract$_StateChannelModule_$2851", "typeString": "contract StateChannelModule" }, { @@ -5074,7 +5229,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, { @@ -5084,18 +5239,18 @@ ], "expression": { "argumentTypes": null, - "id": 2543, + "id": 2832, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "3072:3:19", + "referencedDeclaration": 4353, + "src": "3118:3:20", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 2544, + "id": 2833, "isConstant": false, "isLValue": false, "isPure": true, @@ -5103,13 +5258,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3072:16:19", + "src": "3118:16:20", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2557, + "id": 2846, "isConstant": false, "isLValue": false, "isPure": false, @@ -5117,7 +5272,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3072:78:19", + "src": "3118:78:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5131,18 +5286,18 @@ "typeString": "bytes memory" } ], - "id": 2542, + "id": 2831, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3062:9:19", + "referencedDeclaration": 4360, + "src": "3108:9:20", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2558, + "id": 2847, "isConstant": false, "isLValue": false, "isPure": false, @@ -5150,38 +5305,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3062:89:19", + "src": "3108:89:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 2541, - "id": 2559, + "functionReturnParameters": 2830, + "id": 2848, "nodeType": "Return", - "src": "3055:96:19" + "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": 2561, + "id": 2850, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, + "kind": "function", "modifiers": [], "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2538, + "id": 2827, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2529, + "id": 2818, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2866:10:19", + "scope": 2850, + "src": "2905:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5189,10 +5343,11 @@ "typeString": "address" }, "typeName": { - "id": 2528, + "id": 2817, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2866:7:19", + "src": "2905:7:20", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5203,11 +5358,11 @@ }, { "constant": false, - "id": 2531, + "id": 2820, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2887:13:19", + "scope": 2850, + "src": "2926:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5215,10 +5370,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2530, + "id": 2819, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2887:7:19", + "src": "2926:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5229,22 +5384,22 @@ }, { "constant": false, - "id": 2533, + "id": 2822, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2911:10:19", + "scope": 2850, + "src": "2950:17:20", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2532, + "id": 2821, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2911:5:19", + "src": "2950:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5255,26 +5410,26 @@ }, { "constant": false, - "id": 2535, + "id": 2824, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2932:24:19", + "scope": 2850, + "src": "2978:24:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 2534, + "id": 2823, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "2932:14:19", + "referencedDeclaration": 1802, + "src": "2978:14:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } }, @@ -5283,11 +5438,11 @@ }, { "constant": false, - "id": 2537, + "id": 2826, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2967:13:19", + "scope": 2850, + "src": "3013:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5295,10 +5450,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2536, + "id": 2825, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2967:7:19", + "src": "3013:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5308,20 +5463,19 @@ "visibility": "internal" } ], - "src": "2856:130:19" + "src": "2895:137:20" }, - "payable": false, "returnParameters": { - "id": 2541, + "id": 2830, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2540, + "id": 2829, "name": "", "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "3032:7:19", + "scope": 2850, + "src": "3078:7:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5329,10 +5483,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2539, + "id": 2828, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3032:7:19", + "src": "3078:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5342,39 +5496,26 @@ "visibility": "internal" } ], - "src": "3031:9:19" + "src": "3077:9:20" }, - "scope": 2562, - "src": "2829:329:19", + "scope": 2851, + "src": "2868:336:20", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 2563, - "src": "320:2840:19" + "scope": 2852, + "src": "320:2886:20" } ], - "src": "0:3161:19" + "src": "0:3207:20" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0x1627ecb6ed8188b6bacbb3b10f96702afdfbf654", - "transactionHash": "0x75f57cb2a58b4fc7044f711e7480db922157fa23e235ebdce6d1c8fc6bc6b510" - }, - "1538739975997": { - "events": {}, - "links": {}, - "address": "0xd833215cbcc3f914bd1c9ece3ee7bf8b14f841bb", - "transactionHash": "0xa05ff534671ab7a7cefd5ca6bf68d5b10ee19259c09bf33323810ebcedca7157" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:43:41.435Z" + "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 index ec183f15..0c13fbf3 100644 --- a/safe-contracts/build/contracts/Token.json +++ b/safe-contracts/build/contracts/Token.json @@ -29,37 +29,37 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.23;\nimport \"@gnosis.pm/mock-contract/contracts/MockContract.sol\";\ncontract Token {\n\tfunction transfer(address _to, uint value) public returns (bool);\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/mocks/Token.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/mocks/Token.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/mocks/Token.sol", "exportedSymbols": { "Token": [ - 1871 + 2148 ] }, - "id": 1872, + "id": 2149, "nodeType": "SourceUnit", "nodes": [ { - "id": 1860, + "id": 2137, "literals": [ "solidity", "^", - "0.4", - ".23" + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:24:16" + "src": "0:23:17" }, { "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", "file": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "id": 1861, + "id": 2138, "nodeType": "ImportDirective", - "scope": 1872, - "sourceUnit": 4001, - "src": "25:61:16", + "scope": 2149, + "sourceUnit": 4352, + "src": "24:61:17", "symbolAliases": [], "unitAlias": "" }, @@ -69,9 +69,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 1871, + "id": 2148, "linearizedBaseContracts": [ - 1871 + 2148 ], "name": "Token", "nodeType": "ContractDefinition", @@ -79,24 +79,23 @@ { "body": null, "documentation": null, - "id": 1870, + "id": 2147, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 1866, + "id": 2143, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1863, + "id": 2140, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 1870, - "src": "123:11:16", + "scope": 2147, + "src": "122:11:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -104,10 +103,11 @@ "typeString": "address" }, "typeName": { - "id": 1862, + "id": 2139, "name": "address", "nodeType": "ElementaryTypeName", - "src": "123:7:16", + "src": "122:7:17", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -118,11 +118,11 @@ }, { "constant": false, - "id": 1865, + "id": 2142, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1870, - "src": "136:10:16", + "scope": 2147, + "src": "135:10:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -130,10 +130,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1864, + "id": 2141, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "136:4:16", + "src": "135:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -143,20 +143,19 @@ "visibility": "internal" } ], - "src": "122:25:16" + "src": "121:25:17" }, - "payable": false, "returnParameters": { - "id": 1869, + "id": 2146, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1868, + "id": 2145, "name": "", "nodeType": "VariableDeclaration", - "scope": 1870, - "src": "164:4:16", + "scope": 2147, + "src": "163:4:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -164,10 +163,10 @@ "typeString": "bool" }, "typeName": { - "id": 1867, + "id": 2144, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "164:4:16", + "src": "163:4:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -177,50 +176,50 @@ "visibility": "internal" } ], - "src": "163:6:16" + "src": "162:6:17" }, - "scope": 1871, - "src": "105:65:16", + "scope": 2148, + "src": "104:65:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1872, - "src": "87:85:16" + "scope": 2149, + "src": "86:85:17" } ], - "src": "0:173:16" + "src": "0:172:17" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/mocks/Token.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/mocks/Token.sol", "exportedSymbols": { "Token": [ - 1871 + 2148 ] }, - "id": 1872, + "id": 2149, "nodeType": "SourceUnit", "nodes": [ { - "id": 1860, + "id": 2137, "literals": [ "solidity", "^", - "0.4", - ".23" + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:24:16" + "src": "0:23:17" }, { "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", "file": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "id": 1861, + "id": 2138, "nodeType": "ImportDirective", - "scope": 1872, - "sourceUnit": 4001, - "src": "25:61:16", + "scope": 2149, + "sourceUnit": 4352, + "src": "24:61:17", "symbolAliases": [], "unitAlias": "" }, @@ -230,9 +229,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 1871, + "id": 2148, "linearizedBaseContracts": [ - 1871 + 2148 ], "name": "Token", "nodeType": "ContractDefinition", @@ -240,24 +239,23 @@ { "body": null, "documentation": null, - "id": 1870, + "id": 2147, "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 1866, + "id": 2143, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1863, + "id": 2140, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 1870, - "src": "123:11:16", + "scope": 2147, + "src": "122:11:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -265,10 +263,11 @@ "typeString": "address" }, "typeName": { - "id": 1862, + "id": 2139, "name": "address", "nodeType": "ElementaryTypeName", - "src": "123:7:16", + "src": "122:7:17", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -279,11 +278,11 @@ }, { "constant": false, - "id": 1865, + "id": 2142, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1870, - "src": "136:10:16", + "scope": 2147, + "src": "135:10:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -291,10 +290,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1864, + "id": 2141, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "136:4:16", + "src": "135:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -304,20 +303,19 @@ "visibility": "internal" } ], - "src": "122:25:16" + "src": "121:25:17" }, - "payable": false, "returnParameters": { - "id": 1869, + "id": 2146, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1868, + "id": 2145, "name": "", "nodeType": "VariableDeclaration", - "scope": 1870, - "src": "164:4:16", + "scope": 2147, + "src": "163:4:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -325,10 +323,10 @@ "typeString": "bool" }, "typeName": { - "id": 1867, + "id": 2144, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "164:4:16", + "src": "163:4:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -338,26 +336,26 @@ "visibility": "internal" } ], - "src": "163:6:16" + "src": "162:6:17" }, - "scope": 1871, - "src": "105:65:16", + "scope": 2148, + "src": "104:65:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1872, - "src": "87:85:16" + "scope": 2149, + "src": "86:85:17" } ], - "src": "0:173:16" + "src": "0:172:17" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.939Z" + "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 index 90e0a69e..e90708c9 100644 --- a/safe-contracts/build/contracts/WhitelistModule.json +++ b/safe-contracts/build/contracts/WhitelistModule.json @@ -146,73 +146,74 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611248806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a723058200759d9736c7b0074bec4c761a4c2afe1f92448d2e5c774b10eac839b4f00324b0029", - "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a723058200759d9736c7b0074bec4c761a4c2afe1f92448d2e5c774b10eac839b4f00324b0029", - "sourceMap": "311:2199:20:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;311:2199:20;;;;;;;", - "deployedSourceMap": "311:2199:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2006:502;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2006:502:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;520:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;520:46:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1550:202:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1550:202:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:48:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;689:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;689:298:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1136:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1136:260:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;407:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;407:40:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2006:502;2105:4;2235:7;;;;;;;;;;;2222:29;;;2252:10;2222:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2222:41:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2222:41:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2222:41:20;;;;;;;;;;;;;;;;2214:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2323:13;:17;2337:2;2323:17;;;;;;;;;;;;;;;;;;;;;;;;;2315:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2396:7;;;;;;;;;;;:33;;;2430:2;2434:5;2441:4;2447:19;2396: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;2396:71:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2396:71:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2396:71:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2396:71:20;;;;;;;;;;;;;;;;2388:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2006:502;;;;;:::o;520:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;626:248:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1550:202:20:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1652:13:20;:22;1666:7;1652:22;;;;;;;;;;;;;;;;;;;;;;;;;1644:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1740:5;1715:13;:22;1729:7;1715:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1550:202;:::o;353:48::-;;;;;;;;;;;;;;;;;;;;:::o;689:298::-;780:9;835:15;753:12;:10;:12::i;:::-;792:1;780:13;;775:206;799:8;:15;795:1;:19;775:206;;;853:8;862:1;853:11;;;;;;;;;;;;;;;;;;835:29;;897:1;886:7;:12;;;;878:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;966:4;941:13;:22;955:7;941:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;816:3;;;;;;;775:206;;;689:298;;;:::o;1136:260::-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1244:1:20;1233:7;:12;;;;1225:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1293:13;:22;1307:7;1293:22;;;;;;;;;;;;;;;;;;;;;;;;;1292:23;1284:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1385:4;1360:13;:22;1374:7;1360:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1136:260;:::o;407:40::-;;;;;;;;;;;;;;;;;;;;:::o;442:300:4:-;656:1;644:7;;;;;;;;;;;636:21;;;628:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;724:10;700:7;;:35;;;;;;;;;;;;;;;;;;442:300::o", - "source": "pragma solidity 0.4.24;\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.0.2\";\n\n // isWhitelisted mapping maps destination address to boolean.\n mapping (address => bool) public isWhitelisted;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param accounts List of whitelisted accounts.\n function setup(address[] accounts)\n public\n {\n setManager();\n for (uint256 i = 0; i < accounts.length; i++) {\n address account = accounts[i];\n require(account != 0, \"Invalid account provided\");\n isWhitelisted[account] = true;\n }\n }\n\n /// @dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n /// @param account Destination address.\n function addToWhitelist(address account)\n public\n authorized\n {\n require(account != 0, \"Invalid account provided\");\n require(!isWhitelisted[account], \"Account is already whitelisted\");\n isWhitelisted[account] = true;\n }\n\n /// @dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n /// @param account Destination address.\n function removeFromWhitelist(address account)\n public\n authorized\n {\n require(isWhitelisted[account], \"Account is not whitelisted\");\n isWhitelisted[account] = false;\n }\n\n /// @dev Returns if Safe transaction is to a whitelisted destination.\n /// @param to Whitelisted destination address.\n /// @param value Not checked.\n /// @param data Not checked.\n /// @return Returns if transaction can be executed.\n function executeWhitelisted(address to, uint256 value, bytes data)\n public\n returns (bool)\n {\n // Only Safe owners are allowed to execute transactions to whitelisted accounts.\n require(OwnerManager(manager).isOwner(msg.sender), \"Method can only be called by an owner\");\n require(isWhitelisted[to], \"Target account is not whitelisted\");\n require(manager.execTransactionFromModule(to, value, data, Enum.Operation.Call), \"Could not execute transaction\");\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", + "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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", "exportedSymbols": { "WhitelistModule": [ - 2716 + 3011 ] }, - "id": 2717, + "id": 3012, "nodeType": "SourceUnit", "nodes": [ { - "id": 2564, + "id": 2853, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:20" + "src": "0:23:21" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "../base/Module.sol", - "id": 2565, + "id": 2854, "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 936, - "src": "24:28:20", + "scope": 3012, + "sourceUnit": 1021, + "src": "24:28:21", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "file": "../base/ModuleManager.sol", - "id": 2566, + "id": 2855, "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 1213, - "src": "53:35:20", + "scope": 3012, + "sourceUnit": 1331, + "src": "53:35:21", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", "file": "../base/OwnerManager.sol", - "id": 2567, + "id": 2856, "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 1653, - "src": "89:34:20", + "scope": 3012, + "sourceUnit": 1797, + "src": "89:34:21", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", "file": "../common/Enum.sol", - "id": 2568, + "id": 2857, "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 1660, - "src": "124:28:20", + "scope": 3012, + "sourceUnit": 1804, + "src": "124:28:21", "symbolAliases": [], "unitAlias": "" }, @@ -222,46 +223,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2569, + "id": 2858, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "339:6:20", + "referencedDeclaration": 1020, + "src": "339:6:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, - "id": 2570, + "id": 2859, "nodeType": "InheritanceSpecifier", - "src": "339:6:20" + "src": "339:6:21" } ], "contractDependencies": [ - 935, - 1693, - 1735 + 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": 2716, + "id": 3011, "linearizedBaseContracts": [ - 2716, - 935, - 1693, - 1735 + 3011, + 1020, + 1839, + 1881 ], "name": "WhitelistModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2573, + "id": 2862, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2716, - "src": "353:48:20", + "scope": 3011, + "src": "353:48:21", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -269,10 +270,10 @@ "typeString": "string" }, "typeName": { - "id": 2571, + "id": 2860, "name": "string", "nodeType": "ElementaryTypeName", - "src": "353:6:20", + "src": "353:6:21", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -281,14 +282,14 @@ "value": { "argumentTypes": null, "hexValue": "57686974656c697374204d6f64756c65", - "id": 2572, + "id": 2861, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "383:18:20", + "src": "383:18:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_84d69d03a7c747e8eefe7cc2b9e87b566cfc57cc90e4ed88f03f9c9780b7d4e6", @@ -300,11 +301,11 @@ }, { "constant": true, - "id": 2576, + "id": 2865, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2716, - "src": "407:40:20", + "scope": 3011, + "src": "407:40:21", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -312,10 +313,10 @@ "typeString": "string" }, "typeName": { - "id": 2574, + "id": 2863, "name": "string", "nodeType": "ElementaryTypeName", - "src": "407:6:20", + "src": "407:6:21", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -323,31 +324,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e32", - "id": 2575, + "hexValue": "302e312e30", + "id": 2864, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "440:7:20", + "src": "440:7:21", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" + "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", + "typeString": "literal_string \"0.1.0\"" }, - "value": "0.0.2" + "value": "0.1.0" }, "visibility": "public" }, { "constant": false, - "id": 2580, + "id": 2869, "name": "isWhitelisted", "nodeType": "VariableDeclaration", - "scope": 2716, - "src": "520:46:20", + "scope": 3011, + "src": "520:46:21", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -355,28 +356,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 2579, + "id": 2868, "keyType": { - "id": 2577, + "id": 2866, "name": "address", "nodeType": "ElementaryTypeName", - "src": "529:7:20", + "src": "529:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "520:25:20", + "src": "520:25:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2578, + "id": 2867, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "540:4:20", + "src": "540:4:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -388,9 +389,9 @@ }, { "body": { - "id": 2621, + "id": 2912, "nodeType": "Block", - "src": "743:244:20", + "src": "750:253:21", "statements": [ { "expression": { @@ -398,18 +399,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2586, + "id": 2875, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "753:10:20", + "referencedDeclaration": 1019, + "src": "760:10:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2587, + "id": 2876, "isConstant": false, "isLValue": false, "isPure": false, @@ -417,34 +418,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "753:12:20", + "src": "760:12:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2588, + "id": 2877, "nodeType": "ExpressionStatement", - "src": "753:12:20" + "src": "760:12:21" }, { "body": { - "id": 2619, + "id": 2910, "nodeType": "Block", - "src": "821:160:20", + "src": "828:169:21", "statements": [ { "assignments": [ - 2601 + 2890 ], "declarations": [ { "constant": false, - "id": 2601, + "id": 2890, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2622, - "src": "835:15:20", + "scope": 2910, + "src": "842:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -452,10 +453,11 @@ "typeString": "address" }, "typeName": { - "id": 2600, + "id": 2889, "name": "address", "nodeType": "ElementaryTypeName", - "src": "835:7:20", + "src": "842:7:21", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -465,31 +467,31 @@ "visibility": "internal" } ], - "id": 2605, + "id": 2894, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2602, + "id": 2891, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2583, - "src": "853:8:20", + "referencedDeclaration": 2872, + "src": "860:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2604, + "id": 2893, "indexExpression": { "argumentTypes": null, - "id": 2603, + "id": 2892, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "862:1:20", + "referencedDeclaration": 2879, + "src": "869:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -500,14 +502,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "853:11:20", + "src": "860:11:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "835:29:20" + "src": "842:29:21" }, { "expression": { @@ -519,19 +521,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2609, + "id": 2900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2607, + "id": 2896, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "886:7:20", + "referencedDeclaration": 2890, + "src": "893:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -541,23 +543,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2608, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "897:1:20", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "904:10:21", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "886:12:20", + "src": "893:21:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -566,14 +606,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2610, + "id": 2901, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "900:26:20", + "src": "916:26:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", @@ -593,21 +633,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 2606, + "id": 2895, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "878:7:20", + "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": 2611, + "id": 2902, "isConstant": false, "isLValue": false, "isPure": false, @@ -615,20 +655,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "878:49:20", + "src": "885:58:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2612, + "id": 2903, "nodeType": "ExpressionStatement", - "src": "878:49:20" + "src": "885:58:21" }, { "expression": { "argumentTypes": null, - "id": 2617, + "id": 2908, "isConstant": false, "isLValue": false, "isPure": false, @@ -637,26 +677,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2613, + "id": 2904, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "941:13:20", + "referencedDeclaration": 2869, + "src": "957:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2615, + "id": 2906, "indexExpression": { "argumentTypes": null, - "id": 2614, + "id": 2905, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "955:7:20", + "referencedDeclaration": 2890, + "src": "971:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -667,7 +707,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "941:22:20", + "src": "957:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -678,14 +718,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2616, + "id": 2907, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "966:4:20", + "src": "982:4:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -693,15 +733,15 @@ }, "value": "true" }, - "src": "941:29:20", + "src": "957:29:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2618, + "id": 2909, "nodeType": "ExpressionStatement", - "src": "941:29:20" + "src": "957:29:21" } ] }, @@ -711,19 +751,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2596, + "id": 2885, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2593, + "id": 2882, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "795:1:20", + "referencedDeclaration": 2879, + "src": "802:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -735,18 +775,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2594, + "id": 2883, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2583, - "src": "799:8:20", + "referencedDeclaration": 2872, + "src": "806:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2595, + "id": 2884, "isConstant": false, "isLValue": false, "isPure": false, @@ -754,31 +794,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "799:15:20", + "src": "806:15:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "795:19:20", + "src": "802:19:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2620, + "id": 2911, "initializationExpression": { "assignments": [ - 2590 + 2879 ], "declarations": [ { "constant": false, - "id": 2590, + "id": 2879, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2622, - "src": "780:9:20", + "scope": 2911, + "src": "787:9:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -786,10 +826,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2589, + "id": 2878, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "780:7:20", + "src": "787:7:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -799,18 +839,18 @@ "visibility": "internal" } ], - "id": 2592, + "id": 2881, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2591, + "id": 2880, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "792:1:20", + "src": "799:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -819,12 +859,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "780:13:20" + "src": "787:13:21" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2598, + "id": 2887, "isConstant": false, "isLValue": false, "isPure": false, @@ -832,15 +872,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "816:3:20", + "src": "823:3:21", "subExpression": { "argumentTypes": null, - "id": 2597, + "id": 2886, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "816:1:20", + "referencedDeclaration": 2879, + "src": "823:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -851,55 +891,55 @@ "typeString": "uint256" } }, - "id": 2599, + "id": 2888, "nodeType": "ExpressionStatement", - "src": "816:3:20" + "src": "823:3:21" }, "nodeType": "ForStatement", - "src": "775:206:20" + "src": "782:215:21" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", - "id": 2622, + "id": 2913, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2584, + "id": 2873, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2583, + "id": 2872, "name": "accounts", "nodeType": "VariableDeclaration", - "scope": 2622, - "src": "704:18:20", + "scope": 2913, + "src": "704:25:21", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 2581, + "id": 2870, "name": "address", "nodeType": "ElementaryTypeName", - "src": "704:7:20", + "src": "704:7:21", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2582, + "id": 2871, "length": null, "nodeType": "ArrayTypeName", - "src": "704:9:20", + "src": "704:9:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -909,26 +949,25 @@ "visibility": "internal" } ], - "src": "703:20:20" + "src": "703:27:21" }, - "payable": false, "returnParameters": { - "id": 2585, + "id": 2874, "nodeType": "ParameterList", "parameters": [], - "src": "743:0:20" + "src": "750:0:21" }, - "scope": 2716, - "src": "689:298:20", + "scope": 3011, + "src": "689:314:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2650, + "id": 2943, "nodeType": "Block", - "src": "1215:181:20", + "src": "1231:190:21", "statements": [ { "expression": { @@ -940,19 +979,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2632, + "id": 2925, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2630, + "id": 2921, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "1233:7:20", + "referencedDeclaration": 2915, + "src": "1249:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -962,23 +1001,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2631, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "1244:1:20", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "1260:10:21", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "1233:12:20", + "src": "1249:21:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -987,14 +1064,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2633, + "id": 2926, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1247:26:20", + "src": "1272:26:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", @@ -1014,21 +1091,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 2629, + "id": 2920, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1225:7:20", + "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": 2634, + "id": 2927, "isConstant": false, "isLValue": false, "isPure": false, @@ -1036,15 +1113,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1225:49:20", + "src": "1241:58:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2635, + "id": 2928, "nodeType": "ExpressionStatement", - "src": "1225:49:20" + "src": "1241:58:21" }, { "expression": { @@ -1052,7 +1129,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2640, + "id": 2933, "isConstant": false, "isLValue": false, "isPure": false, @@ -1060,31 +1137,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1292:23:20", + "src": "1317:23:21", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2637, + "id": 2930, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1293:13:20", + "referencedDeclaration": 2869, + "src": "1318:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2639, + "id": 2932, "indexExpression": { "argumentTypes": null, - "id": 2638, + "id": 2931, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "1307:7:20", + "referencedDeclaration": 2915, + "src": "1332:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1095,7 +1172,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1293:22:20", + "src": "1318:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1109,14 +1186,14 @@ { "argumentTypes": null, "hexValue": "4163636f756e7420697320616c72656164792077686974656c6973746564", - "id": 2641, + "id": 2934, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1317:32:20", + "src": "1342:32:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_42f0c01c0b06bc5e652009543318e4fd67cfba114702c7f55fad1ff0c3c82ad8", @@ -1136,21 +1213,21 @@ "typeString": "literal_string \"Account is already whitelisted\"" } ], - "id": 2636, + "id": 2929, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1284:7:20", + "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": 2642, + "id": 2935, "isConstant": false, "isLValue": false, "isPure": false, @@ -1158,20 +1235,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1284:66:20", + "src": "1309:66:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2643, + "id": 2936, "nodeType": "ExpressionStatement", - "src": "1284:66:20" + "src": "1309:66:21" }, { "expression": { "argumentTypes": null, - "id": 2648, + "id": 2941, "isConstant": false, "isLValue": false, "isPure": false, @@ -1180,26 +1257,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2644, + "id": 2937, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1360:13:20", + "referencedDeclaration": 2869, + "src": "1385:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2646, + "id": 2939, "indexExpression": { "argumentTypes": null, - "id": 2645, + "id": 2938, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "1374:7:20", + "referencedDeclaration": 2915, + "src": "1399:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1210,7 +1287,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1360:22:20", + "src": "1385:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1221,14 +1298,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2647, + "id": 2940, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1385:4:20", + "src": "1410:4:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1236,57 +1313,56 @@ }, "value": "true" }, - "src": "1360:29:20", + "src": "1385:29:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2649, + "id": 2942, "nodeType": "ExpressionStatement", - "src": "1360:29:20" + "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": 2651, + "id": 2944, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 2627, + "id": 2918, "modifierName": { "argumentTypes": null, - "id": 2626, + "id": 2917, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "1200:10:20", + "referencedDeclaration": 997, + "src": "1216:10:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1200:10:20" + "src": "1216:10:21" } ], "name": "addToWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2625, + "id": 2916, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2624, + "id": 2915, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "1160:15:20", + "scope": 2944, + "src": "1176:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1294,10 +1370,11 @@ "typeString": "address" }, "typeName": { - "id": 2623, + "id": 2914, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1160:7:20", + "src": "1176:7:21", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1307,26 +1384,25 @@ "visibility": "internal" } ], - "src": "1159:17:20" + "src": "1175:17:21" }, - "payable": false, "returnParameters": { - "id": 2628, + "id": 2919, "nodeType": "ParameterList", "parameters": [], - "src": "1215:0:20" + "src": "1231:0:21" }, - "scope": 2716, - "src": "1136:260:20", + "scope": 3011, + "src": "1152:269:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2671, + "id": 2964, "nodeType": "Block", - "src": "1634:118:20", + "src": "1659:118:21", "statements": [ { "expression": { @@ -1336,26 +1412,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2659, + "id": 2952, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1652:13:20", + "referencedDeclaration": 2869, + "src": "1677:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2661, + "id": 2954, "indexExpression": { "argumentTypes": null, - "id": 2660, + "id": 2953, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "1666:7:20", + "referencedDeclaration": 2946, + "src": "1691:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1366,7 +1442,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1652:22:20", + "src": "1677:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1375,14 +1451,14 @@ { "argumentTypes": null, "hexValue": "4163636f756e74206973206e6f742077686974656c6973746564", - "id": 2662, + "id": 2955, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1676:28:20", + "src": "1701:28:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2f56605dd36b69a55672cdc762e8d3959c002a474a30a6774bba38bb65f718e1", @@ -1402,21 +1478,21 @@ "typeString": "literal_string \"Account is not whitelisted\"" } ], - "id": 2658, + "id": 2951, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1644:7:20", + "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": 2663, + "id": 2956, "isConstant": false, "isLValue": false, "isPure": false, @@ -1424,20 +1500,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1644:61:20", + "src": "1669:61:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2664, + "id": 2957, "nodeType": "ExpressionStatement", - "src": "1644:61:20" + "src": "1669:61:21" }, { "expression": { "argumentTypes": null, - "id": 2669, + "id": 2962, "isConstant": false, "isLValue": false, "isPure": false, @@ -1446,26 +1522,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2665, + "id": 2958, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1715:13:20", + "referencedDeclaration": 2869, + "src": "1740:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2667, + "id": 2960, "indexExpression": { "argumentTypes": null, - "id": 2666, + "id": 2959, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "1729:7:20", + "referencedDeclaration": 2946, + "src": "1754:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1476,7 +1552,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1715:22:20", + "src": "1740:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1487,14 +1563,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2668, + "id": 2961, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1740:5:20", + "src": "1765:5:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1502,57 +1578,56 @@ }, "value": "false" }, - "src": "1715:30:20", + "src": "1740:30:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2670, + "id": 2963, "nodeType": "ExpressionStatement", - "src": "1715:30:20" + "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": 2672, + "id": 2965, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 2656, + "id": 2949, "modifierName": { "argumentTypes": null, - "id": 2655, + "id": 2948, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "1619:10:20", + "referencedDeclaration": 997, + "src": "1644:10:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1619:10:20" + "src": "1644:10:21" } ], "name": "removeFromWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2654, + "id": 2947, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2653, + "id": 2946, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2672, - "src": "1579:15:20", + "scope": 2965, + "src": "1604:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1560,10 +1635,11 @@ "typeString": "address" }, "typeName": { - "id": 2652, + "id": 2945, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1579:7:20", + "src": "1604:7:21", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1573,26 +1649,25 @@ "visibility": "internal" } ], - "src": "1578:17:20" + "src": "1603:17:21" }, - "payable": false, "returnParameters": { - "id": 2657, + "id": 2950, "nodeType": "ParameterList", "parameters": [], - "src": "1634:0:20" + "src": "1659:0:21" }, - "scope": 2716, - "src": "1550:202:20", + "scope": 3011, + "src": "1575:202:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2714, + "id": 3009, "nodeType": "Block", - "src": "2115:393:20", + "src": "2147:402:21", "statements": [ { "expression": { @@ -1605,18 +1680,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2688, + "id": 2983, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "2252:3:20", + "referencedDeclaration": 4366, + "src": "2293:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2689, + "id": 2984, "isConstant": false, "isLValue": false, "isPure": false, @@ -1624,18 +1699,18 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2252:10:20", + "src": "2293:10:21", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], "expression": { @@ -1643,37 +1718,75 @@ "arguments": [ { "argumentTypes": null, - "id": 2685, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2235:7:20", + "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_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], - "id": 2684, + "id": 2977, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2222:12:20", + "referencedDeclaration": 1796, + "src": "2254:12:21", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2686, + "id": 2981, "isConstant": false, "isLValue": false, "isPure": false, @@ -1681,27 +1794,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2222:21:20", + "src": "2254:30:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", + "typeIdentifier": "t_contract$_OwnerManager_$1796", "typeString": "contract OwnerManager" } }, - "id": 2687, + "id": 2982, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1602, - "src": "2222:29:20", + "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": 2690, + "id": 2985, "isConstant": false, "isLValue": false, "isPure": false, @@ -1709,7 +1822,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2222:41:20", + "src": "2254:50:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1718,14 +1831,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 2691, + "id": 2986, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2265:39:20", + "src": "2306:39:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", @@ -1745,21 +1858,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 2683, + "id": 2976, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2214:7:20", + "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": 2692, + "id": 2987, "isConstant": false, "isLValue": false, "isPure": false, @@ -1767,15 +1880,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2214:91:20", + "src": "2246:100:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2693, + "id": 2988, "nodeType": "ExpressionStatement", - "src": "2214:91:20" + "src": "2246:100:21" }, { "expression": { @@ -1785,26 +1898,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2695, + "id": 2990, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "2323:13:20", + "referencedDeclaration": 2869, + "src": "2364:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2697, + "id": 2992, "indexExpression": { "argumentTypes": null, - "id": 2696, + "id": 2991, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2674, - "src": "2337:2:20", + "referencedDeclaration": 2967, + "src": "2378:2:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1815,7 +1928,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2323:17:20", + "src": "2364:17:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1824,14 +1937,14 @@ { "argumentTypes": null, "hexValue": "546172676574206163636f756e74206973206e6f742077686974656c6973746564", - "id": 2698, + "id": 2993, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2342:35:20", + "src": "2383:35:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9a154d7dadc01125e34b410c8bdd8fd2546fbbac90b22b0d92787a072cf6fc42", @@ -1851,21 +1964,21 @@ "typeString": "literal_string \"Target account is not whitelisted\"" } ], - "id": 2694, + "id": 2989, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2315:7:20", + "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": 2699, + "id": 2994, "isConstant": false, "isLValue": false, "isPure": false, @@ -1873,15 +1986,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2315:63:20", + "src": "2356:63:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2700, + "id": 2995, "nodeType": "ExpressionStatement", - "src": "2315:63:20" + "src": "2356:63:21" }, { "expression": { @@ -1892,12 +2005,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2704, + "id": 2999, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2674, - "src": "2430:2:20", + "referencedDeclaration": 2967, + "src": "2471:2:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1905,12 +2018,12 @@ }, { "argumentTypes": null, - "id": 2705, + "id": 3000, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2676, - "src": "2434:5:20", + "referencedDeclaration": 2969, + "src": "2475:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1918,12 +2031,12 @@ }, { "argumentTypes": null, - "id": 2706, + "id": 3001, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2678, - "src": "2441:4:20", + "referencedDeclaration": 2971, + "src": "2482:4:21", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1935,32 +2048,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2707, + "id": 3002, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "2447:4:20", + "referencedDeclaration": 1803, + "src": "2488:4:21", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", "typeString": "type(contract Enum)" } }, - "id": 2708, + "id": 3003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "2447:14:20", + "referencedDeclaration": 1802, + "src": "2488:14:21", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2709, + "id": 3004, "isConstant": false, "isLValue": false, "isPure": true, @@ -1968,9 +2081,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2447:19:20", + "src": "2488:19:21", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } } @@ -1990,38 +2103,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2702, + "id": 2997, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2396:7:20", + "referencedDeclaration": 983, + "src": "2437:7:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "id": 2703, + "id": 2998, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "2396:33:20", + "referencedDeclaration": 1256, + "src": "2437:33:21", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", + "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": 2710, + "id": 3005, "isConstant": false, "isLValue": false, "isPure": false, @@ -2029,7 +2142,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2396:71:20", + "src": "2437:71:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2038,14 +2151,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2711, + "id": 3006, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2469:31:20", + "src": "2510:31:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", @@ -2065,21 +2178,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 2701, + "id": 2996, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2388:7:20", + "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": 2712, + "id": 3007, "isConstant": false, "isLValue": false, "isPure": false, @@ -2087,37 +2200,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2388:113:20", + "src": "2429:113:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2713, + "id": 3008, "nodeType": "ExpressionStatement", - "src": "2388:113:20" + "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": 2715, + "id": 3010, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "executeWhitelisted", "nodeType": "FunctionDefinition", "parameters": { - "id": 2679, + "id": 2972, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2674, + "id": 2967, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2034:10:20", + "scope": 3010, + "src": "2059:10:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2125,10 +2237,11 @@ "typeString": "address" }, "typeName": { - "id": 2673, + "id": 2966, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2034:7:20", + "src": "2059:7:21", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2139,11 +2252,11 @@ }, { "constant": false, - "id": 2676, + "id": 2969, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2046:13:20", + "scope": 3010, + "src": "2071:13:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2151,10 +2264,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2675, + "id": 2968, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2046:7:20", + "src": "2071:7:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2165,22 +2278,22 @@ }, { "constant": false, - "id": 2678, + "id": 2971, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2061:10:20", + "scope": 3010, + "src": "2086:17:21", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2677, + "id": 2970, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2061:5:20", + "src": "2086:5:21", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2190,20 +2303,19 @@ "visibility": "internal" } ], - "src": "2033:39:20" + "src": "2058:46:21" }, - "payable": false, "returnParameters": { - "id": 2682, + "id": 2975, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2681, + "id": 2974, "name": "", "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2105:4:20", + "scope": 3010, + "src": "2137:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2211,10 +2323,10 @@ "typeString": "bool" }, "typeName": { - "id": 2680, + "id": 2973, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2105:4:20", + "src": "2137:4:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2224,82 +2336,83 @@ "visibility": "internal" } ], - "src": "2104:6:20" + "src": "2136:6:21" }, - "scope": 2716, - "src": "2006:502:20", + "scope": 3011, + "src": "2031:518:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2717, - "src": "311:2199:20" + "scope": 3012, + "src": "311:2240:21" } ], - "src": "0:2511:20" + "src": "0:2552:21" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", "exportedSymbols": { "WhitelistModule": [ - 2716 + 3011 ] }, - "id": 2717, + "id": 3012, "nodeType": "SourceUnit", "nodes": [ { - "id": 2564, + "id": 2853, "literals": [ "solidity", - "0.4", - ".24" + "^", + "0.5", + ".0" ], "nodeType": "PragmaDirective", - "src": "0:23:20" + "src": "0:23:21" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "../base/Module.sol", - "id": 2565, + "id": 2854, "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 936, - "src": "24:28:20", + "scope": 3012, + "sourceUnit": 1021, + "src": "24:28:21", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "file": "../base/ModuleManager.sol", - "id": 2566, + "id": 2855, "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 1213, - "src": "53:35:20", + "scope": 3012, + "sourceUnit": 1331, + "src": "53:35:21", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", "file": "../base/OwnerManager.sol", - "id": 2567, + "id": 2856, "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 1653, - "src": "89:34:20", + "scope": 3012, + "sourceUnit": 1797, + "src": "89:34:21", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", "file": "../common/Enum.sol", - "id": 2568, + "id": 2857, "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 1660, - "src": "124:28:20", + "scope": 3012, + "sourceUnit": 1804, + "src": "124:28:21", "symbolAliases": [], "unitAlias": "" }, @@ -2309,46 +2422,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2569, + "id": 2858, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "339:6:20", + "referencedDeclaration": 1020, + "src": "339:6:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", + "typeIdentifier": "t_contract$_Module_$1020", "typeString": "contract Module" } }, - "id": 2570, + "id": 2859, "nodeType": "InheritanceSpecifier", - "src": "339:6:20" + "src": "339:6:21" } ], "contractDependencies": [ - 935, - 1693, - 1735 + 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": 2716, + "id": 3011, "linearizedBaseContracts": [ - 2716, - 935, - 1693, - 1735 + 3011, + 1020, + 1839, + 1881 ], "name": "WhitelistModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2573, + "id": 2862, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2716, - "src": "353:48:20", + "scope": 3011, + "src": "353:48:21", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2356,10 +2469,10 @@ "typeString": "string" }, "typeName": { - "id": 2571, + "id": 2860, "name": "string", "nodeType": "ElementaryTypeName", - "src": "353:6:20", + "src": "353:6:21", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2368,14 +2481,14 @@ "value": { "argumentTypes": null, "hexValue": "57686974656c697374204d6f64756c65", - "id": 2572, + "id": 2861, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "383:18:20", + "src": "383:18:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_84d69d03a7c747e8eefe7cc2b9e87b566cfc57cc90e4ed88f03f9c9780b7d4e6", @@ -2387,11 +2500,11 @@ }, { "constant": true, - "id": 2576, + "id": 2865, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2716, - "src": "407:40:20", + "scope": 3011, + "src": "407:40:21", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2399,10 +2512,10 @@ "typeString": "string" }, "typeName": { - "id": 2574, + "id": 2863, "name": "string", "nodeType": "ElementaryTypeName", - "src": "407:6:20", + "src": "407:6:21", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2410,31 +2523,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e32", - "id": 2575, + "hexValue": "302e312e30", + "id": 2864, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "440:7:20", + "src": "440:7:21", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" + "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", + "typeString": "literal_string \"0.1.0\"" }, - "value": "0.0.2" + "value": "0.1.0" }, "visibility": "public" }, { "constant": false, - "id": 2580, + "id": 2869, "name": "isWhitelisted", "nodeType": "VariableDeclaration", - "scope": 2716, - "src": "520:46:20", + "scope": 3011, + "src": "520:46:21", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2442,28 +2555,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 2579, + "id": 2868, "keyType": { - "id": 2577, + "id": 2866, "name": "address", "nodeType": "ElementaryTypeName", - "src": "529:7:20", + "src": "529:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "520:25:20", + "src": "520:25:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2578, + "id": 2867, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "540:4:20", + "src": "540:4:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2475,9 +2588,9 @@ }, { "body": { - "id": 2621, + "id": 2912, "nodeType": "Block", - "src": "743:244:20", + "src": "750:253:21", "statements": [ { "expression": { @@ -2485,18 +2598,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2586, + "id": 2875, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "753:10:20", + "referencedDeclaration": 1019, + "src": "760:10:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2587, + "id": 2876, "isConstant": false, "isLValue": false, "isPure": false, @@ -2504,34 +2617,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "753:12:20", + "src": "760:12:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2588, + "id": 2877, "nodeType": "ExpressionStatement", - "src": "753:12:20" + "src": "760:12:21" }, { "body": { - "id": 2619, + "id": 2910, "nodeType": "Block", - "src": "821:160:20", + "src": "828:169:21", "statements": [ { "assignments": [ - 2601 + 2890 ], "declarations": [ { "constant": false, - "id": 2601, + "id": 2890, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2622, - "src": "835:15:20", + "scope": 2910, + "src": "842:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2539,10 +2652,11 @@ "typeString": "address" }, "typeName": { - "id": 2600, + "id": 2889, "name": "address", "nodeType": "ElementaryTypeName", - "src": "835:7:20", + "src": "842:7:21", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2552,31 +2666,31 @@ "visibility": "internal" } ], - "id": 2605, + "id": 2894, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2602, + "id": 2891, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2583, - "src": "853:8:20", + "referencedDeclaration": 2872, + "src": "860:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2604, + "id": 2893, "indexExpression": { "argumentTypes": null, - "id": 2603, + "id": 2892, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "862:1:20", + "referencedDeclaration": 2879, + "src": "869:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2587,14 +2701,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "853:11:20", + "src": "860:11:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "835:29:20" + "src": "842:29:21" }, { "expression": { @@ -2606,19 +2720,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2609, + "id": 2900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2607, + "id": 2896, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "886:7:20", + "referencedDeclaration": 2890, + "src": "893:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2628,23 +2742,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2608, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "897:1:20", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "904:10:21", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "886:12:20", + "src": "893:21:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2653,14 +2805,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2610, + "id": 2901, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "900:26:20", + "src": "916:26:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", @@ -2680,21 +2832,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 2606, + "id": 2895, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "878:7:20", + "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": 2611, + "id": 2902, "isConstant": false, "isLValue": false, "isPure": false, @@ -2702,20 +2854,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "878:49:20", + "src": "885:58:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2612, + "id": 2903, "nodeType": "ExpressionStatement", - "src": "878:49:20" + "src": "885:58:21" }, { "expression": { "argumentTypes": null, - "id": 2617, + "id": 2908, "isConstant": false, "isLValue": false, "isPure": false, @@ -2724,26 +2876,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2613, + "id": 2904, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "941:13:20", + "referencedDeclaration": 2869, + "src": "957:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2615, + "id": 2906, "indexExpression": { "argumentTypes": null, - "id": 2614, + "id": 2905, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "955:7:20", + "referencedDeclaration": 2890, + "src": "971:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2754,7 +2906,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "941:22:20", + "src": "957:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2765,14 +2917,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2616, + "id": 2907, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "966:4:20", + "src": "982:4:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2780,15 +2932,15 @@ }, "value": "true" }, - "src": "941:29:20", + "src": "957:29:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2618, + "id": 2909, "nodeType": "ExpressionStatement", - "src": "941:29:20" + "src": "957:29:21" } ] }, @@ -2798,19 +2950,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2596, + "id": 2885, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2593, + "id": 2882, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "795:1:20", + "referencedDeclaration": 2879, + "src": "802:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2822,18 +2974,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2594, + "id": 2883, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2583, - "src": "799:8:20", + "referencedDeclaration": 2872, + "src": "806:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2595, + "id": 2884, "isConstant": false, "isLValue": false, "isPure": false, @@ -2841,31 +2993,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "799:15:20", + "src": "806:15:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "795:19:20", + "src": "802:19:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2620, + "id": 2911, "initializationExpression": { "assignments": [ - 2590 + 2879 ], "declarations": [ { "constant": false, - "id": 2590, + "id": 2879, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2622, - "src": "780:9:20", + "scope": 2911, + "src": "787:9:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2873,10 +3025,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2589, + "id": 2878, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "780:7:20", + "src": "787:7:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2886,18 +3038,18 @@ "visibility": "internal" } ], - "id": 2592, + "id": 2881, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2591, + "id": 2880, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "792:1:20", + "src": "799:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2906,12 +3058,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "780:13:20" + "src": "787:13:21" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2598, + "id": 2887, "isConstant": false, "isLValue": false, "isPure": false, @@ -2919,15 +3071,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "816:3:20", + "src": "823:3:21", "subExpression": { "argumentTypes": null, - "id": 2597, + "id": 2886, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "816:1:20", + "referencedDeclaration": 2879, + "src": "823:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2938,55 +3090,55 @@ "typeString": "uint256" } }, - "id": 2599, + "id": 2888, "nodeType": "ExpressionStatement", - "src": "816:3:20" + "src": "823:3:21" }, "nodeType": "ForStatement", - "src": "775:206:20" + "src": "782:215:21" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", - "id": 2622, + "id": 2913, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2584, + "id": 2873, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2583, + "id": 2872, "name": "accounts", "nodeType": "VariableDeclaration", - "scope": 2622, - "src": "704:18:20", + "scope": 2913, + "src": "704:25:21", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 2581, + "id": 2870, "name": "address", "nodeType": "ElementaryTypeName", - "src": "704:7:20", + "src": "704:7:21", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2582, + "id": 2871, "length": null, "nodeType": "ArrayTypeName", - "src": "704:9:20", + "src": "704:9:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -2996,26 +3148,25 @@ "visibility": "internal" } ], - "src": "703:20:20" + "src": "703:27:21" }, - "payable": false, "returnParameters": { - "id": 2585, + "id": 2874, "nodeType": "ParameterList", "parameters": [], - "src": "743:0:20" + "src": "750:0:21" }, - "scope": 2716, - "src": "689:298:20", + "scope": 3011, + "src": "689:314:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2650, + "id": 2943, "nodeType": "Block", - "src": "1215:181:20", + "src": "1231:190:21", "statements": [ { "expression": { @@ -3027,19 +3178,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2632, + "id": 2925, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2630, + "id": 2921, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "1233:7:20", + "referencedDeclaration": 2915, + "src": "1249:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3049,23 +3200,61 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2631, + "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": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "1244:1:20", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "1260:10:21", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "1233:12:20", + "src": "1249:21:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3074,14 +3263,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2633, + "id": 2926, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1247:26:20", + "src": "1272:26:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", @@ -3101,21 +3290,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 2629, + "id": 2920, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1225:7:20", + "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": 2634, + "id": 2927, "isConstant": false, "isLValue": false, "isPure": false, @@ -3123,15 +3312,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1225:49:20", + "src": "1241:58:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2635, + "id": 2928, "nodeType": "ExpressionStatement", - "src": "1225:49:20" + "src": "1241:58:21" }, { "expression": { @@ -3139,7 +3328,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2640, + "id": 2933, "isConstant": false, "isLValue": false, "isPure": false, @@ -3147,31 +3336,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1292:23:20", + "src": "1317:23:21", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2637, + "id": 2930, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1293:13:20", + "referencedDeclaration": 2869, + "src": "1318:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2639, + "id": 2932, "indexExpression": { "argumentTypes": null, - "id": 2638, + "id": 2931, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "1307:7:20", + "referencedDeclaration": 2915, + "src": "1332:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3182,7 +3371,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1293:22:20", + "src": "1318:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3196,14 +3385,14 @@ { "argumentTypes": null, "hexValue": "4163636f756e7420697320616c72656164792077686974656c6973746564", - "id": 2641, + "id": 2934, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1317:32:20", + "src": "1342:32:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_42f0c01c0b06bc5e652009543318e4fd67cfba114702c7f55fad1ff0c3c82ad8", @@ -3223,21 +3412,21 @@ "typeString": "literal_string \"Account is already whitelisted\"" } ], - "id": 2636, + "id": 2929, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1284:7:20", + "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": 2642, + "id": 2935, "isConstant": false, "isLValue": false, "isPure": false, @@ -3245,20 +3434,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1284:66:20", + "src": "1309:66:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2643, + "id": 2936, "nodeType": "ExpressionStatement", - "src": "1284:66:20" + "src": "1309:66:21" }, { "expression": { "argumentTypes": null, - "id": 2648, + "id": 2941, "isConstant": false, "isLValue": false, "isPure": false, @@ -3267,26 +3456,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2644, + "id": 2937, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1360:13:20", + "referencedDeclaration": 2869, + "src": "1385:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2646, + "id": 2939, "indexExpression": { "argumentTypes": null, - "id": 2645, + "id": 2938, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "1374:7:20", + "referencedDeclaration": 2915, + "src": "1399:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3297,7 +3486,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1360:22:20", + "src": "1385:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3308,14 +3497,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2647, + "id": 2940, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1385:4:20", + "src": "1410:4:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3323,57 +3512,56 @@ }, "value": "true" }, - "src": "1360:29:20", + "src": "1385:29:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2649, + "id": 2942, "nodeType": "ExpressionStatement", - "src": "1360:29:20" + "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": 2651, + "id": 2944, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 2627, + "id": 2918, "modifierName": { "argumentTypes": null, - "id": 2626, + "id": 2917, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "1200:10:20", + "referencedDeclaration": 997, + "src": "1216:10:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1200:10:20" + "src": "1216:10:21" } ], "name": "addToWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2625, + "id": 2916, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2624, + "id": 2915, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "1160:15:20", + "scope": 2944, + "src": "1176:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3381,10 +3569,11 @@ "typeString": "address" }, "typeName": { - "id": 2623, + "id": 2914, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1160:7:20", + "src": "1176:7:21", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3394,26 +3583,25 @@ "visibility": "internal" } ], - "src": "1159:17:20" + "src": "1175:17:21" }, - "payable": false, "returnParameters": { - "id": 2628, + "id": 2919, "nodeType": "ParameterList", "parameters": [], - "src": "1215:0:20" + "src": "1231:0:21" }, - "scope": 2716, - "src": "1136:260:20", + "scope": 3011, + "src": "1152:269:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2671, + "id": 2964, "nodeType": "Block", - "src": "1634:118:20", + "src": "1659:118:21", "statements": [ { "expression": { @@ -3423,26 +3611,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2659, + "id": 2952, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1652:13:20", + "referencedDeclaration": 2869, + "src": "1677:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2661, + "id": 2954, "indexExpression": { "argumentTypes": null, - "id": 2660, + "id": 2953, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "1666:7:20", + "referencedDeclaration": 2946, + "src": "1691:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3453,7 +3641,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1652:22:20", + "src": "1677:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3462,14 +3650,14 @@ { "argumentTypes": null, "hexValue": "4163636f756e74206973206e6f742077686974656c6973746564", - "id": 2662, + "id": 2955, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1676:28:20", + "src": "1701:28:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2f56605dd36b69a55672cdc762e8d3959c002a474a30a6774bba38bb65f718e1", @@ -3489,21 +3677,21 @@ "typeString": "literal_string \"Account is not whitelisted\"" } ], - "id": 2658, + "id": 2951, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "1644:7:20", + "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": 2663, + "id": 2956, "isConstant": false, "isLValue": false, "isPure": false, @@ -3511,20 +3699,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1644:61:20", + "src": "1669:61:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2664, + "id": 2957, "nodeType": "ExpressionStatement", - "src": "1644:61:20" + "src": "1669:61:21" }, { "expression": { "argumentTypes": null, - "id": 2669, + "id": 2962, "isConstant": false, "isLValue": false, "isPure": false, @@ -3533,26 +3721,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2665, + "id": 2958, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1715:13:20", + "referencedDeclaration": 2869, + "src": "1740:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2667, + "id": 2960, "indexExpression": { "argumentTypes": null, - "id": 2666, + "id": 2959, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "1729:7:20", + "referencedDeclaration": 2946, + "src": "1754:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3563,7 +3751,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1715:22:20", + "src": "1740:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3574,14 +3762,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2668, + "id": 2961, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1740:5:20", + "src": "1765:5:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3589,57 +3777,56 @@ }, "value": "false" }, - "src": "1715:30:20", + "src": "1740:30:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2670, + "id": 2963, "nodeType": "ExpressionStatement", - "src": "1715:30:20" + "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": 2672, + "id": 2965, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [ { "arguments": null, - "id": 2656, + "id": 2949, "modifierName": { "argumentTypes": null, - "id": 2655, + "id": 2948, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "1619:10:20", + "referencedDeclaration": 997, + "src": "1644:10:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1619:10:20" + "src": "1644:10:21" } ], "name": "removeFromWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2654, + "id": 2947, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2653, + "id": 2946, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2672, - "src": "1579:15:20", + "scope": 2965, + "src": "1604:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3647,10 +3834,11 @@ "typeString": "address" }, "typeName": { - "id": 2652, + "id": 2945, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1579:7:20", + "src": "1604:7:21", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3660,26 +3848,25 @@ "visibility": "internal" } ], - "src": "1578:17:20" + "src": "1603:17:21" }, - "payable": false, "returnParameters": { - "id": 2657, + "id": 2950, "nodeType": "ParameterList", "parameters": [], - "src": "1634:0:20" + "src": "1659:0:21" }, - "scope": 2716, - "src": "1550:202:20", + "scope": 3011, + "src": "1575:202:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2714, + "id": 3009, "nodeType": "Block", - "src": "2115:393:20", + "src": "2147:402:21", "statements": [ { "expression": { @@ -3692,18 +3879,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2688, + "id": 2983, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "2252:3:20", + "referencedDeclaration": 4366, + "src": "2293:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2689, + "id": 2984, "isConstant": false, "isLValue": false, "isPure": false, @@ -3711,18 +3898,18 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2252:10:20", + "src": "2293:10:21", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], "expression": { @@ -3730,37 +3917,75 @@ "arguments": [ { "argumentTypes": null, - "id": 2685, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2235:7:20", + "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_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } ], - "id": 2684, + "id": 2977, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2222:12:20", + "referencedDeclaration": 1796, + "src": "2254:12:21", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2686, + "id": 2981, "isConstant": false, "isLValue": false, "isPure": false, @@ -3768,27 +3993,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2222:21:20", + "src": "2254:30:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", + "typeIdentifier": "t_contract$_OwnerManager_$1796", "typeString": "contract OwnerManager" } }, - "id": 2687, + "id": 2982, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1602, - "src": "2222:29:20", + "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": 2690, + "id": 2985, "isConstant": false, "isLValue": false, "isPure": false, @@ -3796,7 +4021,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2222:41:20", + "src": "2254:50:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3805,14 +4030,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 2691, + "id": 2986, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2265:39:20", + "src": "2306:39:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", @@ -3832,21 +4057,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 2683, + "id": 2976, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2214:7:20", + "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": 2692, + "id": 2987, "isConstant": false, "isLValue": false, "isPure": false, @@ -3854,15 +4079,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2214:91:20", + "src": "2246:100:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2693, + "id": 2988, "nodeType": "ExpressionStatement", - "src": "2214:91:20" + "src": "2246:100:21" }, { "expression": { @@ -3872,26 +4097,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2695, + "id": 2990, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "2323:13:20", + "referencedDeclaration": 2869, + "src": "2364:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2697, + "id": 2992, "indexExpression": { "argumentTypes": null, - "id": 2696, + "id": 2991, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2674, - "src": "2337:2:20", + "referencedDeclaration": 2967, + "src": "2378:2:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3902,7 +4127,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2323:17:20", + "src": "2364:17:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3911,14 +4136,14 @@ { "argumentTypes": null, "hexValue": "546172676574206163636f756e74206973206e6f742077686974656c6973746564", - "id": 2698, + "id": 2993, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2342:35:20", + "src": "2383:35:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9a154d7dadc01125e34b410c8bdd8fd2546fbbac90b22b0d92787a072cf6fc42", @@ -3938,21 +4163,21 @@ "typeString": "literal_string \"Target account is not whitelisted\"" } ], - "id": 2694, + "id": 2989, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2315:7:20", + "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": 2699, + "id": 2994, "isConstant": false, "isLValue": false, "isPure": false, @@ -3960,15 +4185,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2315:63:20", + "src": "2356:63:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2700, + "id": 2995, "nodeType": "ExpressionStatement", - "src": "2315:63:20" + "src": "2356:63:21" }, { "expression": { @@ -3979,12 +4204,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2704, + "id": 2999, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2674, - "src": "2430:2:20", + "referencedDeclaration": 2967, + "src": "2471:2:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3992,12 +4217,12 @@ }, { "argumentTypes": null, - "id": 2705, + "id": 3000, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2676, - "src": "2434:5:20", + "referencedDeclaration": 2969, + "src": "2475:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4005,12 +4230,12 @@ }, { "argumentTypes": null, - "id": 2706, + "id": 3001, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2678, - "src": "2441:4:20", + "referencedDeclaration": 2971, + "src": "2482:4:21", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4022,32 +4247,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2707, + "id": 3002, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "2447:4:20", + "referencedDeclaration": 1803, + "src": "2488:4:21", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", "typeString": "type(contract Enum)" } }, - "id": 2708, + "id": 3003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "2447:14:20", + "referencedDeclaration": 1802, + "src": "2488:14:21", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2709, + "id": 3004, "isConstant": false, "isLValue": false, "isPure": true, @@ -4055,9 +4280,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2447:19:20", + "src": "2488:19:21", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } } @@ -4077,38 +4302,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$1658", + "typeIdentifier": "t_enum$_Operation_$1802", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2702, + "id": 2997, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2396:7:20", + "referencedDeclaration": 983, + "src": "2437:7:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeIdentifier": "t_contract$_ModuleManager_$1330", "typeString": "contract ModuleManager" } }, - "id": 2703, + "id": 2998, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "2396:33:20", + "referencedDeclaration": 1256, + "src": "2437:33:21", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", + "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": 2710, + "id": 3005, "isConstant": false, "isLValue": false, "isPure": false, @@ -4116,7 +4341,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2396:71:20", + "src": "2437:71:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4125,14 +4350,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2711, + "id": 3006, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2469:31:20", + "src": "2510:31:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", @@ -4152,21 +4377,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 2701, + "id": 2996, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4018, - 4019 + 4369, + 4370 ], - "referencedDeclaration": 4019, - "src": "2388:7:20", + "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": 2712, + "id": 3007, "isConstant": false, "isLValue": false, "isPure": false, @@ -4174,37 +4399,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2388:113:20", + "src": "2429:113:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2713, + "id": 3008, "nodeType": "ExpressionStatement", - "src": "2388:113:20" + "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": 2715, + "id": 3010, "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, + "kind": "function", "modifiers": [], "name": "executeWhitelisted", "nodeType": "FunctionDefinition", "parameters": { - "id": 2679, + "id": 2972, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2674, + "id": 2967, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2034:10:20", + "scope": 3010, + "src": "2059:10:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4212,10 +4436,11 @@ "typeString": "address" }, "typeName": { - "id": 2673, + "id": 2966, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2034:7:20", + "src": "2059:7:21", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4226,11 +4451,11 @@ }, { "constant": false, - "id": 2676, + "id": 2969, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2046:13:20", + "scope": 3010, + "src": "2071:13:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4238,10 +4463,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2675, + "id": 2968, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2046:7:20", + "src": "2071:7:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4252,22 +4477,22 @@ }, { "constant": false, - "id": 2678, + "id": 2971, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2061:10:20", + "scope": 3010, + "src": "2086:17:21", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { - "id": 2677, + "id": 2970, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2061:5:20", + "src": "2086:5:21", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4277,20 +4502,19 @@ "visibility": "internal" } ], - "src": "2033:39:20" + "src": "2058:46:21" }, - "payable": false, "returnParameters": { - "id": 2682, + "id": 2975, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2681, + "id": 2974, "name": "", "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2105:4:20", + "scope": 3010, + "src": "2137:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4298,10 +4522,10 @@ "typeString": "bool" }, "typeName": { - "id": 2680, + "id": 2973, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2105:4:20", + "src": "2137:4:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4311,39 +4535,26 @@ "visibility": "internal" } ], - "src": "2104:6:20" + "src": "2136:6:21" }, - "scope": 2716, - "src": "2006:502:20", + "scope": 3011, + "src": "2031:518:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2717, - "src": "311:2199:20" + "scope": 3012, + "src": "311:2240:21" } ], - "src": "0:2511:20" + "src": "0:2552:21" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0x77b5702ac70c2e46eb8a44ae6bdb9a26e9a3d740", - "transactionHash": "0x1a9cc8c89e0438c8a7a841118d223e827d8ba0e4b74d96abc05b9d3ff71db5d9" - }, - "1538739975997": { - "events": {}, - "links": {}, - "address": "0x67b5656d60a809915323bf2c40a8bef15a152e3e", - "transactionHash": "0x4dde124f9f1b69a327602dc7442df559a245fb0cde540a12f1c2ee04e47354a1" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:43:41.429Z" + "networks": {}, + "schemaVersion": "2.0.2", + "updatedAt": "2019-04-12T12:46:18.643Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/ApproveAndCallFallBack.json b/safe-contracts/build/contracts/test/ApproveAndCallFallBack.json deleted file mode 100644 index c944830f..00000000 --- a/safe-contracts/build/contracts/test/ApproveAndCallFallBack.json +++ /dev/null @@ -1,14216 +0,0 @@ -{ - "contractName": "ApproveAndCallFallBack", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "receiveApproval", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract TestToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n string public symbol;\n string public name;\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n symbol = \"TKN\";\n name = \"Token Example\";\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "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": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "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": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "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": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "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": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "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": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "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": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "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": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "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": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "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": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "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": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "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": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "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": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "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": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "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": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "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": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "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": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "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": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "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": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-09-26T08:32:07.651Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/ERC20Interface.json b/safe-contracts/build/contracts/test/ERC20Interface.json deleted file mode 100644 index 223532fb..00000000 --- a/safe-contracts/build/contracts/test/ERC20Interface.json +++ /dev/null @@ -1,14363 +0,0 @@ -{ - "contractName": "ERC20Interface", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "tokens", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "tokenOwner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "tokens", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenOwner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenOwner", - "type": "address" - }, - { - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "remaining", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract TestToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n string public symbol;\n string public name;\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n symbol = \"TKN\";\n name = \"Token Example\";\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "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": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "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": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "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": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "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": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "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": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "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": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "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": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "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": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "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": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "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": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "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": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "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": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "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": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "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": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "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": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "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": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "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": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "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": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-09-26T08:32:07.653Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/EmptyToken.json b/safe-contracts/build/contracts/test/EmptyToken.json deleted file mode 100644 index 1a470ff2..00000000 --- a/safe-contracts/build/contracts/test/EmptyToken.json +++ /dev/null @@ -1,14205 +0,0 @@ -{ - "contractName": "EmptyToken", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "tokens", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "tokenOwner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "tokens", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenOwner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenOwner", - "type": "address" - }, - { - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "remaining", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "approveAndCall", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "tokenAddress", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transferAnyERC20Token", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600160146101000a81548160ff021916908360ff160217905550600160149054906101000a900460ff1660ff16600a0a620f424002600281905550600254600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6002546040518082815260200191505060405180910390a36112718061018d6000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146100ca57806318160ddd1461012f57806323b872dd1461015a578063313ce567146101df57806370a082311461021057806379ba5097146102675780638da5cb5b1461027e578063a9059cbb146102d5578063cae9ca511461033a578063d4ee1d90146103e5578063dc39d06d1461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100d657600080fd5b50610115600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061055b565b604051808215151515815260200191505060405180910390f35b34801561013b57600080fd5b5061014461064d565b6040518082815260200191505060405180910390f35b34801561016657600080fd5b506101c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a8565b604051808215151515815260200191505060405180910390f35b3480156101eb57600080fd5b506101f4610953565b604051808260ff1660ff16815260200191505060405180910390f35b34801561021c57600080fd5b50610251600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610966565b6040518082815260200191505060405180910390f35b34801561027357600080fd5b5061027c6109af565b005b34801561028a57600080fd5b50610293610b4e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e157600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b73565b604051808215151515815260200191505060405180910390f35b34801561034657600080fd5b506103cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610d0e565b604051808215151515815260200191505060405180910390f35b3480156103f157600080fd5b506103fa610f5d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f83565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e7565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061116e565b005b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60006106a3600360008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460025461120d90919063ffffffff16565b905090565b60006106fc82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506107ce82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600160149054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a0b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bc782600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c5c82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610eeb578082015181840152602081019050610ed0565b50505050905090810190601f168015610f185780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610f3a57600080fd5b505af1158015610f4e573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe057600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110a457600080fd5b505af11580156110b8573d6000803e3d6000fd5b505050506040513d60208110156110ce57600080fd5b8101908080519060200190929190505050905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111c957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561121e57600080fd5b818303905092915050565b6000818301905082811015151561123f57600080fd5b929150505600a165627a7a7230582086ec8e422bd8c5ddad32eb09a806eeb6d1ed5c20827c3010d77b0278f363ecbe0029", - "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146100ca57806318160ddd1461012f57806323b872dd1461015a578063313ce567146101df57806370a082311461021057806379ba5097146102675780638da5cb5b1461027e578063a9059cbb146102d5578063cae9ca511461033a578063d4ee1d90146103e5578063dc39d06d1461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100d657600080fd5b50610115600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061055b565b604051808215151515815260200191505060405180910390f35b34801561013b57600080fd5b5061014461064d565b6040518082815260200191505060405180910390f35b34801561016657600080fd5b506101c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a8565b604051808215151515815260200191505060405180910390f35b3480156101eb57600080fd5b506101f4610953565b604051808260ff1660ff16815260200191505060405180910390f35b34801561021c57600080fd5b50610251600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610966565b6040518082815260200191505060405180910390f35b34801561027357600080fd5b5061027c6109af565b005b34801561028a57600080fd5b50610293610b4e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e157600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b73565b604051808215151515815260200191505060405180910390f35b34801561034657600080fd5b506103cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610d0e565b604051808215151515815260200191505060405180910390f35b3480156103f157600080fd5b506103fa610f5d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f83565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e7565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061116e565b005b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60006106a3600360008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460025461120d90919063ffffffff16565b905090565b60006106fc82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506107ce82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600160149054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a0b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bc782600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c5c82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610eeb578082015181840152602081019050610ed0565b50505050905090810190601f168015610f185780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610f3a57600080fd5b505af1158015610f4e573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe057600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110a457600080fd5b505af11580156110b8573d6000803e3d6000fd5b505050506040513d60208110156110ce57600080fd5b8101908080519060200190929190505050905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111c957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561121e57600080fd5b818303905092915050565b6000818301905082811015151561123f57600080fd5b929150505600a165627a7a7230582086ec8e422bd8c5ddad32eb09a806eeb6d1ed5c20827c3010d77b0278f363ecbe0029", - "sourceMap": "3506:5189:25:-;;;3916:200;8:9:-1;5:2;;;30:1;27;20:12;5:2;3916:200:25;2856:10;2848:5;;:18;;;;;;;;;;;;;;;;;;3958:2;3947:8;;:13;;;;;;;;;;;;;;;;;;4004:8;;;;;;;;;;;3999:14;;3995:2;:18;3985:7;:28;3970:12;:43;;;;4041:12;;4023:8;:15;4032:5;;;;;;;;;;;4023:15;;;;;;;;;;;;;;;:30;;;;4089:5;;;;;;;;;;;4068:41;;4085:1;4068:41;;;4096:12;;4068:41;;;;;;;;;;;;;;;;;;3506:5189;;;;;;", - "deployedSourceMap": "3506:5189:25:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8264:8;;;5865:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5865:204:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4303:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4303:112:25;;;;;;;;;;;;;;;;;;;;;;;6601:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6601:337:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3587:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3587:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;4636:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4636:118:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:25;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;5097:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5097:262:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7724:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7724:312:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:25;;;;;;;;;;;;;;;;;;;;;;;;;;;8511:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8511:182:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7219:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7219:145:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;5865:204;5928:12;5983:6;5952:7;:19;5960:10;5952:19;;;;;;;;;;;;;;;:28;5972:7;5952:28;;;;;;;;;;;;;;;:37;;;;6025:7;6004:37;;6013:10;6004:37;;;6034:6;6004:37;;;;;;;;;;;;;;;;;;6058:4;6051:11;;5865:204;;;;:::o;4303:112::-;4347:4;4370:38;4387:8;:20;4404:1;4387:20;;;;;;;;;;;;;;;;4370:12;;:16;;:38;;;;:::i;:::-;4363:45;;4303:112;:::o;6601:337::-;6678:12;6719:26;6738:6;6719:8;:14;6728:4;6719:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;6702:8;:14;6711:4;6702:14;;;;;;;;;;;;;;;:43;;;;6783:37;6813:6;6783:7;:13;6791:4;6783:13;;;;;;;;;;;;;;;:25;6797:10;6783:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;6755:7;:13;6763:4;6755:13;;;;;;;;;;;;;;;:25;6769:10;6755:25;;;;;;;;;;;;;;;:65;;;;6845:24;6862:6;6845:8;:12;6854:2;6845:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;6830:8;:12;6839:2;6830:12;;;;;;;;;;;;;;;:39;;;;6899:2;6884:26;;6893:4;6884:26;;;6903:6;6884:26;;;;;;;;;;;;;;;;;;6927:4;6920:11;;6601:337;;;;;:::o;3587:21::-;;;;;;;;;;;;;:::o;4636:118::-;4696:12;4727:8;:20;4736:10;4727:20;;;;;;;;;;;;;;;;4720:27;;4636:118;;;:::o;3065:191::-;3131:8;;;;;;;;;;;3117:22;;:10;:22;;;3109:31;;;;;;;;3183:8;;;;;;;;;;;3155:37;;3176:5;;;;;;;;;;;3155:37;;;;;;;;;;;;3210:8;;;;;;;;;;;3202:5;;:16;;;;;;;;;;;;;;;;;;3247:1;3228:8;;:21;;;;;;;;;;;;;;;;;;3065:191::o;2684:20::-;;;;;;;;;;;;;:::o;5097:262::-;5156:12;5203:32;5228:6;5203:8;:20;5212:10;5203:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5180:8;:20;5189:10;5180:20;;;;;;;;;;;;;;;:55;;;;5260:24;5277:6;5260:8;:12;5269:2;5260:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;5245:8;:12;5254:2;5245:12;;;;;;;;;;;;;;;:39;;;;5320:2;5299:32;;5308:10;5299:32;;;5324:6;5299:32;;;;;;;;;;;;;;;;;;5348:4;5341:11;;5097:262;;;;:::o;7724:312::-;7806:12;7861:6;7830:7;:19;7838:10;7830:19;;;;;;;;;;;;;;;:28;7850:7;7830:28;;;;;;;;;;;;;;;:37;;;;7903:7;7882:37;;7891:10;7882:37;;;7912:6;7882:37;;;;;;;;;;;;;;;;;;7952:7;7929:47;;;7977:10;7989:6;7997:4;8003;7929:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7929:79:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7929:79:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7929:79:25;;;;8025:4;8018:11;;7724:312;;;;;:::o;2710:23::-;;;;;;;;;;;;;:::o;8511:182::-;8603:12;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;8649:12;8634:37;;;8672:5;;;;;;;;;;;8679:6;8634:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8634:52:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8634:52:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8634:52:25;;;;;;;;;;;;;;;;8627:59;;8511:182;;;;:::o;7219:145::-;7296:14;7329:7;:19;7337:10;7329:19;;;;;;;;;;;;;;;:28;7349:7;7329:28;;;;;;;;;;;;;;;;7322:35;;7219:145;;;;:::o;2960:100::-;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;3044:9;3033:8;;:20;;;;;;;;;;;;;;;;;;2960:100;:::o;775:111::-;827:6;858:1;853;:6;;845:15;;;;;;;;878:1;874;:5;870:9;;775:111;;;;:::o;659:::-;711:6;737:1;733;:5;729:9;;761:1;756;:6;;748:15;;;;;;;;659:111;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract EmptyToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/EmptyToken.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/EmptyToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3051 - ], - "ERC20Interface": [ - 3039 - ], - "EmptyToken": [ - 3415 - ], - "Owned": [ - 3120 - ], - "SafeMath": [ - 2972 - ] - }, - "id": 3416, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2877, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 2972, - "linearizedBaseContracts": [ - 2972 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2898, - "nodeType": "Block", - "src": "719:51:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2886, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2884, - "src": "729:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2887, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "733:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2888, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2881, - "src": "737:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2891, - "nodeType": "ExpressionStatement", - "src": "729:9:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2893, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2884, - "src": "756:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2894, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "761:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2892, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2897, - "nodeType": "ExpressionStatement", - "src": "748:15:25" - } - ] - }, - "documentation": null, - "id": 2899, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2882, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2879, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "672:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2878, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2881, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "680:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2880, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2884, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "711:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2883, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:25" - }, - "scope": 2972, - "src": "659:111:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2920, - "nodeType": "Block", - "src": "835:51:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2909, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2903, - "src": "853:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 2910, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "858:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2908, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2913, - "nodeType": "ExpressionStatement", - "src": "845:15:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2914, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "870:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2915, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "874:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 2916, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2903, - "src": "878:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2919, - "nodeType": "ExpressionStatement", - "src": "870:9:25" - } - ] - }, - "documentation": null, - "id": 2921, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2904, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2901, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2921, - "src": "788:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2900, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2903, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2921, - "src": "796:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2902, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2907, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2906, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2921, - "src": "827:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2905, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:25" - }, - "scope": 2972, - "src": "775:111:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2948, - "nodeType": "Block", - "src": "951:65:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2930, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2928, - "src": "961:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2931, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "965:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 2932, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "969:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2935, - "nodeType": "ExpressionStatement", - "src": "961:9:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2937, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "988:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2938, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2940, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2928, - "src": "998:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2941, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "1002:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2943, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "1007:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2936, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2947, - "nodeType": "ExpressionStatement", - "src": "980:29:25" - } - ] - }, - "documentation": null, - "id": 2949, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2926, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2923, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2949, - "src": "904:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2922, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2925, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2949, - "src": "912:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2924, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2929, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2928, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2949, - "src": "943:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2927, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:25" - }, - "scope": 2972, - "src": "891:125:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2970, - "nodeType": "Block", - "src": "1081:50:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2959, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2953, - "src": "1099:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2958, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2963, - "nodeType": "ExpressionStatement", - "src": "1091:14:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 2968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2964, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "1115:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2965, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2951, - "src": "1119:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2966, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2953, - "src": "1123:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2969, - "nodeType": "ExpressionStatement", - "src": "1115:9:25" - } - ] - }, - "documentation": null, - "id": 2971, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2954, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2951, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2971, - "src": "1034:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2950, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2953, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2971, - "src": "1042:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2952, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2956, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2971, - "src": "1073:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2955, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:25" - }, - "scope": 2972, - "src": "1021:110:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3416, - "src": "636:497:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3039, - "linearizedBaseContracts": [ - 3039 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 2977, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2973, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:25" - }, - "payable": false, - "returnParameters": { - "id": 2976, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2975, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2977, - "src": "1473:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2974, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:25" - }, - "scope": 3039, - "src": "1425:54:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 2984, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2980, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2979, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 2984, - "src": "1503:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2978, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:25" - }, - "payable": false, - "returnParameters": { - "id": 2983, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2982, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 2984, - "src": "1548:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2981, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:25" - }, - "scope": 3039, - "src": "1484:78:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 2993, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2989, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2986, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "1586:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2985, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2988, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "1606:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2987, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:25" - }, - "payable": false, - "returnParameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2991, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "1648:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2990, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:25" - }, - "scope": 3039, - "src": "1567:97:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3002, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2995, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3002, - "src": "1687:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2994, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2997, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3002, - "src": "1699:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2996, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:25" - }, - "payable": false, - "returnParameters": { - "id": 3001, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3000, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3002, - "src": "1728:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2999, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:25" - }, - "scope": 3039, - "src": "1669:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3011, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3007, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3004, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "1764:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3003, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3006, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "1781:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3005, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3010, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3009, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "1810:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3008, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:25" - }, - "scope": 3039, - "src": "1747:77:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3022, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3018, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3013, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1851:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3012, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3015, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1865:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3014, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3017, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1877:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3016, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:25" - }, - "payable": false, - "returnParameters": { - "id": 3021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3020, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1906:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3019, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:25" - }, - "scope": 3039, - "src": "1829:91:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3030, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3029, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3024, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "1941:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3023, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3026, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "1963:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3025, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3028, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "1983:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3027, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:25" - }, - "src": "1926:70:25" - }, - { - "anonymous": false, - "documentation": null, - "id": 3038, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3032, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3038, - "src": "2016:26:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3031, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3034, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3038, - "src": "2044:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3033, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3036, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3038, - "src": "2069:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3035, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:25" - }, - "src": "2001:81:25" - } - ], - "scope": 3416, - "src": "1395:689:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3051, - "linearizedBaseContracts": [ - 3051 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3050, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3048, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3041, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2416:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3040, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3043, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2430:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3042, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3045, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2446:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3047, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2461:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3046, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:25" - }, - "payable": false, - "returnParameters": { - "id": 3049, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:25" - }, - "scope": 3051, - "src": "2391:89:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3416, - "src": "2353:129:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3120, - "linearizedBaseContracts": [ - 3120 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3053, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3120, - "src": "2684:20:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3055, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3120, - "src": "2710:23:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3054, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3061, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3060, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3057, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3061, - "src": "2767:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3056, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3059, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3061, - "src": "2790:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:25" - }, - "src": "2740:71:25" - }, - { - "body": { - "id": 3069, - "nodeType": "Block", - "src": "2838:35:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3064, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "2848:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3065, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3068, - "nodeType": "ExpressionStatement", - "src": "2848:18:25" - } - ] - }, - "documentation": null, - "id": 3070, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3062, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3063, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:25" - }, - "scope": 3120, - "src": "2817:56:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3080, - "nodeType": "Block", - "src": "2898:56:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3073, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3075, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "2930:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3072, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3078, - "nodeType": "ExpressionStatement", - "src": "2908:28:25" - }, - { - "id": 3079, - "nodeType": "PlaceholderStatement", - "src": "2946:1:25" - } - ] - }, - "documentation": null, - "id": 3081, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3071, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:25" - }, - "src": "2879:75:25", - "visibility": "internal" - }, - { - "body": { - "id": 3092, - "nodeType": "Block", - "src": "3023:37:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3088, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3033:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3089, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "3044:9:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3091, - "nodeType": "ExpressionStatement", - "src": "3033:20:25" - } - ] - }, - "documentation": null, - "id": 3093, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3086, - "modifierName": { - "argumentTypes": null, - "id": 3085, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "3013:9:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:25" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3084, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3083, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3093, - "src": "2987:17:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3082, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:25" - }, - "payable": false, - "returnParameters": { - "id": 3087, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:25" - }, - "scope": 3120, - "src": "2960:100:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3118, - "nodeType": "Block", - "src": "3099:157:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3097, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3099, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3131:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3096, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3102, - "nodeType": "ExpressionStatement", - "src": "3109:31:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3104, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "3176:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3105, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3183:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3103, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "3155:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3107, - "nodeType": "EmitStatement", - "src": "3150:42:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3108, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "3202:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3109, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3210:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3111, - "nodeType": "ExpressionStatement", - "src": "3202:16:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3112, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3228:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:25", - "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": 3113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3117, - "nodeType": "ExpressionStatement", - "src": "3228:21:25" - } - ] - }, - "documentation": null, - "id": 3119, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3094, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3095, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:25" - }, - "scope": 3120, - "src": "3065:191:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3416, - "src": "2663:595:25" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3121, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3039, - "src": "3529:14:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3039", - "typeString": "contract ERC20Interface" - } - }, - "id": 3122, - "nodeType": "InheritanceSpecifier", - "src": "3529:14:25" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3123, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3120, - "src": "3545:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3120", - "typeString": "contract Owned" - } - }, - "id": 3124, - "nodeType": "InheritanceSpecifier", - "src": "3545:5:25" - } - ], - "contractDependencies": [ - 3039, - 3120 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3415, - "linearizedBaseContracts": [ - 3415, - 3120, - 3039 - ], - "name": "EmptyToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3127, - "libraryName": { - "contractScope": null, - "id": 3125, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2972, - "src": "3563:8:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2972", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3557:24:25", - "typeName": { - "id": 3126, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3576:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3129, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3587:21:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3128, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3587:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3131, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3614:17:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3130, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3614:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3135, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3638:33:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3134, - "keyType": { - "id": 3132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3646:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3638:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3133, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3657:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3141, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3677:52:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3140, - "keyType": { - "id": 3136, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3685:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3677:44:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3139, - "keyType": { - "id": 3137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3704:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3696:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3138, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3715:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3172, - "nodeType": "Block", - "src": "3937:179:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3144, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3129, - "src": "3947:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3958:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "3947:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3147, - "nodeType": "ExpressionStatement", - "src": "3947:13:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3148, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "3970:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3985:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3995:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3152, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3129, - "src": "4004:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3999:4:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3999:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3995:18:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3985:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3970:43:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3157, - "nodeType": "ExpressionStatement", - "src": "3970:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3158, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "4023:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3160, - "indexExpression": { - "argumentTypes": null, - "id": 3159, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "4032:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4023:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3161, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "4041:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4023:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3163, - "nodeType": "ExpressionStatement", - "src": "4023:30:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3166, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4085:1:25", - "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": 3165, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4077:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4077:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3168, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "4089:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3169, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "4096:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3164, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4068:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4068:41:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3171, - "nodeType": "EmitStatement", - "src": "4063:46:25" - } - ] - }, - "documentation": null, - "id": 3173, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3142, - "nodeType": "ParameterList", - "parameters": [], - "src": "3927:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3143, - "nodeType": "ParameterList", - "parameters": [], - "src": "3937:0:25" - }, - "scope": 3415, - "src": "3916:200:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3187, - "nodeType": "Block", - "src": "4353:62:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3180, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "4387:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3184, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4404:1:25", - "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": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4396:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4396:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4387:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3178, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "4370:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "4370:16:25", - "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": 3185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4370:38:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3177, - "id": 3186, - "nodeType": "Return", - "src": "4363:45:25" - } - ] - }, - "documentation": null, - "id": 3188, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3174, - "nodeType": "ParameterList", - "parameters": [], - "src": "4323:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3177, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3176, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3188, - "src": "4347:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3175, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4347:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4346:6:25" - }, - "scope": 3415, - "src": "4303:112:25", - "stateMutability": "view", - "superFunction": 2977, - "visibility": "public" - }, - { - "body": { - "id": 3199, - "nodeType": "Block", - "src": "4710:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3195, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "4727:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3197, - "indexExpression": { - "argumentTypes": null, - "id": 3196, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3190, - "src": "4736:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4727:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3194, - "id": 3198, - "nodeType": "Return", - "src": "4720:27:25" - } - ] - }, - "documentation": null, - "id": 3200, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3191, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3190, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3200, - "src": "4655:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3189, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4655:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4654:20:25" - }, - "payable": false, - "returnParameters": { - "id": 3194, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3193, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3200, - "src": "4696:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3192, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4696:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4695:14:25" - }, - "scope": 3415, - "src": "4636:118:25", - "stateMutability": "view", - "superFunction": 2984, - "visibility": "public" - }, - { - "body": { - "id": 3242, - "nodeType": "Block", - "src": "5170:189:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3209, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5180:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3212, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3210, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5189:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5189:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5180:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3218, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "5228:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3213, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5203:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3216, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3214, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5212:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5212:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5203:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "5203:24:25", - "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": 3219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5203:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5180:55:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3221, - "nodeType": "ExpressionStatement", - "src": "5180:55:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3222, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5245:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3224, - "indexExpression": { - "argumentTypes": null, - "id": 3223, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3202, - "src": "5254:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5245:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3229, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "5277:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3225, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5260:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3227, - "indexExpression": { - "argumentTypes": null, - "id": 3226, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3202, - "src": "5269:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5260:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2899, - "src": "5260:16:25", - "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": 3230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5260:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5245:39:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3232, - "nodeType": "ExpressionStatement", - "src": "5245:39:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5308:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5308:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3236, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3202, - "src": "5320:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3237, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "5324:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3233, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "5299:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5299:32:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3239, - "nodeType": "EmitStatement", - "src": "5294:37:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5348:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3208, - "id": 3241, - "nodeType": "Return", - "src": "5341:11:25" - } - ] - }, - "documentation": null, - "id": 3243, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3205, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3202, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "5115:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3201, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5115:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3204, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "5127:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3203, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5127:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5114:25:25" - }, - "payable": false, - "returnParameters": { - "id": 3208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3207, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "5156:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3206, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5156:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5155:14:25" - }, - "scope": 3415, - "src": "5097:262:25", - "stateMutability": "nonpayable", - "superFunction": 3002, - "visibility": "public" - }, - { - "body": { - "id": 3270, - "nodeType": "Block", - "src": "5942:127:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3252, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "5952:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3256, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3253, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5960:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5960:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5952:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3257, - "indexExpression": { - "argumentTypes": null, - "id": 3255, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3245, - "src": "5972:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5952:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3258, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "5983:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5952:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3260, - "nodeType": "ExpressionStatement", - "src": "5952:37:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3262, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6013:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6013:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3264, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3245, - "src": "6025:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3265, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "6034:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3261, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "6004:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6004:37:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3267, - "nodeType": "EmitStatement", - "src": "5999:42:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3268, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6058:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3251, - "id": 3269, - "nodeType": "Return", - "src": "6051:11:25" - } - ] - }, - "documentation": null, - "id": 3271, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3245, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3271, - "src": "5882:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5882:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3247, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3271, - "src": "5899:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3246, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5899:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5881:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3251, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3250, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3271, - "src": "5928:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3249, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5928:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5927:14:25" - }, - "scope": 3415, - "src": "5865:204:25", - "stateMutability": "nonpayable", - "superFunction": 3011, - "visibility": "public" - }, - { - "body": { - "id": 3329, - "nodeType": "Block", - "src": "6692:246:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3282, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6702:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3284, - "indexExpression": { - "argumentTypes": null, - "id": 3283, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6711:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6702:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3289, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6738:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3285, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6719:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3287, - "indexExpression": { - "argumentTypes": null, - "id": 3286, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6728:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6719:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "6719:18:25", - "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": 3290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6719:26:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6702:43:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3292, - "nodeType": "ExpressionStatement", - "src": "6702:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3293, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6755:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3297, - "indexExpression": { - "argumentTypes": null, - "id": 3294, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6763:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6755:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3298, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3295, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6769:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6769:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6755:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3306, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6813:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3299, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6783:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3301, - "indexExpression": { - "argumentTypes": null, - "id": 3300, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6791:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6783:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3304, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3302, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6797:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6797:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6783:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "6783:29:25", - "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": 3307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6783:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6755:65:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3309, - "nodeType": "ExpressionStatement", - "src": "6755:65:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3310, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6830:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3312, - "indexExpression": { - "argumentTypes": null, - "id": 3311, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6839:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6830:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3317, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6862:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3313, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6845:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3315, - "indexExpression": { - "argumentTypes": null, - "id": 3314, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6854:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6845:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2899, - "src": "6845:16:25", - "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": 3318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6845:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6830:39:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3320, - "nodeType": "ExpressionStatement", - "src": "6830:39:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3322, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6893:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3323, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6899:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3324, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6903:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3321, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "6884:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6884:26:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3326, - "nodeType": "EmitStatement", - "src": "6879:31:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6927:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3281, - "id": 3328, - "nodeType": "Return", - "src": "6920:11:25" - } - ] - }, - "documentation": null, - "id": 3330, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3273, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6623:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3272, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6623:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3275, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6637:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3274, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6637:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3277, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6649:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3276, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6649:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6622:39:25" - }, - "payable": false, - "returnParameters": { - "id": 3281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3280, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6678:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3279, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6678:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6677:14:25" - }, - "scope": 3415, - "src": "6601:337:25", - "stateMutability": "nonpayable", - "superFunction": 3022, - "visibility": "public" - }, - { - "body": { - "id": 3345, - "nodeType": "Block", - "src": "7312:52:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3339, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7329:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3341, - "indexExpression": { - "argumentTypes": null, - "id": 3340, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3332, - "src": "7337:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7329:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3343, - "indexExpression": { - "argumentTypes": null, - "id": 3342, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "7349:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7329:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3338, - "id": 3344, - "nodeType": "Return", - "src": "7322:35:25" - } - ] - }, - "documentation": null, - "id": 3346, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3332, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3346, - "src": "7238:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3331, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7238:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3334, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3346, - "src": "7258:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3333, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7258:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7237:37:25" - }, - "payable": false, - "returnParameters": { - "id": 3338, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3337, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3346, - "src": "7296:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3336, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7296:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7295:16:25" - }, - "scope": 3415, - "src": "7219:145:25", - "stateMutability": "view", - "superFunction": 2993, - "visibility": "public" - }, - { - "body": { - "id": 3386, - "nodeType": "Block", - "src": "7820:216:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3357, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7830:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3361, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3358, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7838:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7838:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7830:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3362, - "indexExpression": { - "argumentTypes": null, - "id": 3360, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3348, - "src": "7850:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7830:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3363, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "7861:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7830:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3365, - "nodeType": "ExpressionStatement", - "src": "7830:37:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3367, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7891:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7891:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3369, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3348, - "src": "7903:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3370, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "7912:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3366, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "7882:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7882:37:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3372, - "nodeType": "EmitStatement", - "src": "7877:42:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3377, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7977:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7977:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3379, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "7989:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3380, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4564, - "src": "7997:4:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_EmptyToken_$3415", - "typeString": "contract EmptyToken" - } - }, - { - "argumentTypes": null, - "id": 3381, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3352, - "src": "8003:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_EmptyToken_$3415", - "typeString": "contract EmptyToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3374, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3348, - "src": "7952:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3373, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3051, - "src": "7929:22:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3051_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7929:31:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3051", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3050, - "src": "7929:47:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7929:79:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3383, - "nodeType": "ExpressionStatement", - "src": "7929:79:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8025:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3356, - "id": 3385, - "nodeType": "Return", - "src": "8018:11:25" - } - ] - }, - "documentation": null, - "id": 3387, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3348, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7748:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3347, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7748:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3350, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7765:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3349, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7765:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3352, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7778:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3351, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7778:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7747:42:25" - }, - "payable": false, - "returnParameters": { - "id": 3356, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3355, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7806:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3354, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7806:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7805:14:25" - }, - "scope": 3415, - "src": "7724:312:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3393, - "nodeType": "Block", - "src": "8254:25:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3390, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8264:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8264:8:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3392, - "nodeType": "ExpressionStatement", - "src": "8264:8:25" - } - ] - }, - "documentation": null, - "id": 3394, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3388, - "nodeType": "ParameterList", - "parameters": [], - "src": "8236:2:25" - }, - "payable": true, - "returnParameters": { - "id": 3389, - "nodeType": "ParameterList", - "parameters": [], - "src": "8254:0:25" - }, - "scope": 3415, - "src": "8227:52:25", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3413, - "nodeType": "Block", - "src": "8617:76:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3409, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "8672:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3410, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "8679:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3406, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "8649:12:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3405, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3039, - "src": "8634:14:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3039_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8634:28:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3039", - "typeString": "contract ERC20Interface" - } - }, - "id": 3408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3002, - "src": "8634:37:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8634:52:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3404, - "id": 3412, - "nodeType": "Return", - "src": "8627:59:25" - } - ] - }, - "documentation": null, - "id": 3414, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3401, - "modifierName": { - "argumentTypes": null, - "id": 3400, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "8584:9:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8584:9:25" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3396, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "8542:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3395, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8542:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3398, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "8564:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3397, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8564:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8541:35:25" - }, - "payable": false, - "returnParameters": { - "id": 3404, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3403, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "8603:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3402, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8603:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8602:14:25" - }, - "scope": 3415, - "src": "8511:182:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3416, - "src": "3506:5189:25" - } - ], - "src": "0:8695:25" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/EmptyToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3051 - ], - "ERC20Interface": [ - 3039 - ], - "EmptyToken": [ - 3415 - ], - "Owned": [ - 3120 - ], - "SafeMath": [ - 2972 - ] - }, - "id": 3416, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2877, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 2972, - "linearizedBaseContracts": [ - 2972 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2898, - "nodeType": "Block", - "src": "719:51:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2886, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2884, - "src": "729:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2887, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "733:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2888, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2881, - "src": "737:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2891, - "nodeType": "ExpressionStatement", - "src": "729:9:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2893, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2884, - "src": "756:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2894, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "761:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2892, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2897, - "nodeType": "ExpressionStatement", - "src": "748:15:25" - } - ] - }, - "documentation": null, - "id": 2899, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2882, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2879, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "672:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2878, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2881, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "680:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2880, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2884, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "711:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2883, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:25" - }, - "scope": 2972, - "src": "659:111:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2920, - "nodeType": "Block", - "src": "835:51:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2909, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2903, - "src": "853:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 2910, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "858:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2908, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2913, - "nodeType": "ExpressionStatement", - "src": "845:15:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2914, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "870:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2915, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "874:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 2916, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2903, - "src": "878:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2919, - "nodeType": "ExpressionStatement", - "src": "870:9:25" - } - ] - }, - "documentation": null, - "id": 2921, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2904, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2901, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2921, - "src": "788:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2900, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2903, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2921, - "src": "796:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2902, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2907, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2906, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2921, - "src": "827:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2905, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:25" - }, - "scope": 2972, - "src": "775:111:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2948, - "nodeType": "Block", - "src": "951:65:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2930, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2928, - "src": "961:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2931, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "965:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 2932, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "969:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2935, - "nodeType": "ExpressionStatement", - "src": "961:9:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2937, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "988:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2938, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2940, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2928, - "src": "998:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2941, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "1002:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2943, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "1007:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2936, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2947, - "nodeType": "ExpressionStatement", - "src": "980:29:25" - } - ] - }, - "documentation": null, - "id": 2949, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2926, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2923, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2949, - "src": "904:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2922, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2925, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2949, - "src": "912:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2924, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2929, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2928, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2949, - "src": "943:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2927, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:25" - }, - "scope": 2972, - "src": "891:125:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2970, - "nodeType": "Block", - "src": "1081:50:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2959, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2953, - "src": "1099:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2958, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2963, - "nodeType": "ExpressionStatement", - "src": "1091:14:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 2968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2964, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "1115:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2965, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2951, - "src": "1119:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2966, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2953, - "src": "1123:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2969, - "nodeType": "ExpressionStatement", - "src": "1115:9:25" - } - ] - }, - "documentation": null, - "id": 2971, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2954, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2951, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2971, - "src": "1034:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2950, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2953, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2971, - "src": "1042:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2952, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2956, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2971, - "src": "1073:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2955, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:25" - }, - "scope": 2972, - "src": "1021:110:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3416, - "src": "636:497:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3039, - "linearizedBaseContracts": [ - 3039 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 2977, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2973, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:25" - }, - "payable": false, - "returnParameters": { - "id": 2976, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2975, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2977, - "src": "1473:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2974, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:25" - }, - "scope": 3039, - "src": "1425:54:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 2984, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2980, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2979, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 2984, - "src": "1503:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2978, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:25" - }, - "payable": false, - "returnParameters": { - "id": 2983, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2982, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 2984, - "src": "1548:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2981, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:25" - }, - "scope": 3039, - "src": "1484:78:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 2993, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2989, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2986, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "1586:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2985, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2988, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "1606:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2987, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:25" - }, - "payable": false, - "returnParameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2991, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "1648:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2990, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:25" - }, - "scope": 3039, - "src": "1567:97:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3002, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2995, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3002, - "src": "1687:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2994, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2997, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3002, - "src": "1699:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2996, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:25" - }, - "payable": false, - "returnParameters": { - "id": 3001, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3000, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3002, - "src": "1728:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2999, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:25" - }, - "scope": 3039, - "src": "1669:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3011, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3007, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3004, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "1764:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3003, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3006, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "1781:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3005, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3010, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3009, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "1810:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3008, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:25" - }, - "scope": 3039, - "src": "1747:77:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3022, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3018, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3013, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1851:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3012, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3015, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1865:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3014, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3017, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1877:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3016, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:25" - }, - "payable": false, - "returnParameters": { - "id": 3021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3020, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1906:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3019, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:25" - }, - "scope": 3039, - "src": "1829:91:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3030, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3029, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3024, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "1941:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3023, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3026, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "1963:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3025, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3028, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "1983:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3027, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:25" - }, - "src": "1926:70:25" - }, - { - "anonymous": false, - "documentation": null, - "id": 3038, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3032, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3038, - "src": "2016:26:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3031, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3034, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3038, - "src": "2044:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3033, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3036, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3038, - "src": "2069:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3035, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:25" - }, - "src": "2001:81:25" - } - ], - "scope": 3416, - "src": "1395:689:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3051, - "linearizedBaseContracts": [ - 3051 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3050, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3048, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3041, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2416:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3040, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3043, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2430:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3042, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3045, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2446:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3047, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2461:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3046, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:25" - }, - "payable": false, - "returnParameters": { - "id": 3049, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:25" - }, - "scope": 3051, - "src": "2391:89:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3416, - "src": "2353:129:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3120, - "linearizedBaseContracts": [ - 3120 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3053, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3120, - "src": "2684:20:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3055, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3120, - "src": "2710:23:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3054, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3061, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3060, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3057, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3061, - "src": "2767:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3056, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3059, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3061, - "src": "2790:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:25" - }, - "src": "2740:71:25" - }, - { - "body": { - "id": 3069, - "nodeType": "Block", - "src": "2838:35:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3064, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "2848:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3065, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3068, - "nodeType": "ExpressionStatement", - "src": "2848:18:25" - } - ] - }, - "documentation": null, - "id": 3070, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3062, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3063, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:25" - }, - "scope": 3120, - "src": "2817:56:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3080, - "nodeType": "Block", - "src": "2898:56:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3073, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3075, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "2930:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3072, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3078, - "nodeType": "ExpressionStatement", - "src": "2908:28:25" - }, - { - "id": 3079, - "nodeType": "PlaceholderStatement", - "src": "2946:1:25" - } - ] - }, - "documentation": null, - "id": 3081, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3071, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:25" - }, - "src": "2879:75:25", - "visibility": "internal" - }, - { - "body": { - "id": 3092, - "nodeType": "Block", - "src": "3023:37:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3088, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3033:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3089, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "3044:9:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3091, - "nodeType": "ExpressionStatement", - "src": "3033:20:25" - } - ] - }, - "documentation": null, - "id": 3093, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3086, - "modifierName": { - "argumentTypes": null, - "id": 3085, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "3013:9:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:25" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3084, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3083, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3093, - "src": "2987:17:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3082, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:25" - }, - "payable": false, - "returnParameters": { - "id": 3087, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:25" - }, - "scope": 3120, - "src": "2960:100:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3118, - "nodeType": "Block", - "src": "3099:157:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3097, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3099, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3131:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3096, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3102, - "nodeType": "ExpressionStatement", - "src": "3109:31:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3104, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "3176:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3105, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3183:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3103, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "3155:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3107, - "nodeType": "EmitStatement", - "src": "3150:42:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3108, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "3202:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3109, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3210:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3111, - "nodeType": "ExpressionStatement", - "src": "3202:16:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3112, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3228:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:25", - "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": 3113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3117, - "nodeType": "ExpressionStatement", - "src": "3228:21:25" - } - ] - }, - "documentation": null, - "id": 3119, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3094, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3095, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:25" - }, - "scope": 3120, - "src": "3065:191:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3416, - "src": "2663:595:25" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3121, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3039, - "src": "3529:14:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3039", - "typeString": "contract ERC20Interface" - } - }, - "id": 3122, - "nodeType": "InheritanceSpecifier", - "src": "3529:14:25" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3123, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3120, - "src": "3545:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3120", - "typeString": "contract Owned" - } - }, - "id": 3124, - "nodeType": "InheritanceSpecifier", - "src": "3545:5:25" - } - ], - "contractDependencies": [ - 3039, - 3120 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3415, - "linearizedBaseContracts": [ - 3415, - 3120, - 3039 - ], - "name": "EmptyToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3127, - "libraryName": { - "contractScope": null, - "id": 3125, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2972, - "src": "3563:8:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2972", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3557:24:25", - "typeName": { - "id": 3126, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3576:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3129, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3587:21:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3128, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3587:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3131, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3614:17:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3130, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3614:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3135, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3638:33:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3134, - "keyType": { - "id": 3132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3646:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3638:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3133, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3657:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3141, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3677:52:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3140, - "keyType": { - "id": 3136, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3685:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3677:44:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3139, - "keyType": { - "id": 3137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3704:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3696:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3138, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3715:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3172, - "nodeType": "Block", - "src": "3937:179:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3144, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3129, - "src": "3947:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3958:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "3947:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3147, - "nodeType": "ExpressionStatement", - "src": "3947:13:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3148, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "3970:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3985:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3995:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3152, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3129, - "src": "4004:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3999:4:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3999:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3995:18:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3985:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3970:43:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3157, - "nodeType": "ExpressionStatement", - "src": "3970:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3158, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "4023:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3160, - "indexExpression": { - "argumentTypes": null, - "id": 3159, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "4032:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4023:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3161, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "4041:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4023:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3163, - "nodeType": "ExpressionStatement", - "src": "4023:30:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3166, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4085:1:25", - "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": 3165, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4077:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4077:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3168, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "4089:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3169, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "4096:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3164, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4068:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4068:41:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3171, - "nodeType": "EmitStatement", - "src": "4063:46:25" - } - ] - }, - "documentation": null, - "id": 3173, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3142, - "nodeType": "ParameterList", - "parameters": [], - "src": "3927:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3143, - "nodeType": "ParameterList", - "parameters": [], - "src": "3937:0:25" - }, - "scope": 3415, - "src": "3916:200:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3187, - "nodeType": "Block", - "src": "4353:62:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3180, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "4387:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3184, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4404:1:25", - "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": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4396:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4396:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4387:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3178, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "4370:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "4370:16:25", - "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": 3185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4370:38:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3177, - "id": 3186, - "nodeType": "Return", - "src": "4363:45:25" - } - ] - }, - "documentation": null, - "id": 3188, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3174, - "nodeType": "ParameterList", - "parameters": [], - "src": "4323:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3177, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3176, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3188, - "src": "4347:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3175, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4347:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4346:6:25" - }, - "scope": 3415, - "src": "4303:112:25", - "stateMutability": "view", - "superFunction": 2977, - "visibility": "public" - }, - { - "body": { - "id": 3199, - "nodeType": "Block", - "src": "4710:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3195, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "4727:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3197, - "indexExpression": { - "argumentTypes": null, - "id": 3196, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3190, - "src": "4736:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4727:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3194, - "id": 3198, - "nodeType": "Return", - "src": "4720:27:25" - } - ] - }, - "documentation": null, - "id": 3200, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3191, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3190, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3200, - "src": "4655:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3189, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4655:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4654:20:25" - }, - "payable": false, - "returnParameters": { - "id": 3194, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3193, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3200, - "src": "4696:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3192, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4696:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4695:14:25" - }, - "scope": 3415, - "src": "4636:118:25", - "stateMutability": "view", - "superFunction": 2984, - "visibility": "public" - }, - { - "body": { - "id": 3242, - "nodeType": "Block", - "src": "5170:189:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3209, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5180:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3212, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3210, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5189:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5189:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5180:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3218, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "5228:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3213, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5203:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3216, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3214, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5212:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5212:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5203:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "5203:24:25", - "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": 3219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5203:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5180:55:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3221, - "nodeType": "ExpressionStatement", - "src": "5180:55:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3222, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5245:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3224, - "indexExpression": { - "argumentTypes": null, - "id": 3223, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3202, - "src": "5254:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5245:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3229, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "5277:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3225, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5260:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3227, - "indexExpression": { - "argumentTypes": null, - "id": 3226, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3202, - "src": "5269:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5260:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2899, - "src": "5260:16:25", - "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": 3230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5260:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5245:39:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3232, - "nodeType": "ExpressionStatement", - "src": "5245:39:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5308:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5308:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3236, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3202, - "src": "5320:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3237, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "5324:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3233, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "5299:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5299:32:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3239, - "nodeType": "EmitStatement", - "src": "5294:37:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5348:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3208, - "id": 3241, - "nodeType": "Return", - "src": "5341:11:25" - } - ] - }, - "documentation": null, - "id": 3243, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3205, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3202, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "5115:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3201, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5115:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3204, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "5127:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3203, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5127:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5114:25:25" - }, - "payable": false, - "returnParameters": { - "id": 3208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3207, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "5156:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3206, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5156:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5155:14:25" - }, - "scope": 3415, - "src": "5097:262:25", - "stateMutability": "nonpayable", - "superFunction": 3002, - "visibility": "public" - }, - { - "body": { - "id": 3270, - "nodeType": "Block", - "src": "5942:127:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3252, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "5952:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3256, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3253, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5960:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5960:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5952:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3257, - "indexExpression": { - "argumentTypes": null, - "id": 3255, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3245, - "src": "5972:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5952:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3258, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "5983:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5952:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3260, - "nodeType": "ExpressionStatement", - "src": "5952:37:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3262, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6013:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6013:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3264, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3245, - "src": "6025:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3265, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "6034:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3261, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "6004:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6004:37:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3267, - "nodeType": "EmitStatement", - "src": "5999:42:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3268, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6058:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3251, - "id": 3269, - "nodeType": "Return", - "src": "6051:11:25" - } - ] - }, - "documentation": null, - "id": 3271, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3245, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3271, - "src": "5882:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5882:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3247, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3271, - "src": "5899:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3246, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5899:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5881:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3251, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3250, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3271, - "src": "5928:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3249, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5928:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5927:14:25" - }, - "scope": 3415, - "src": "5865:204:25", - "stateMutability": "nonpayable", - "superFunction": 3011, - "visibility": "public" - }, - { - "body": { - "id": 3329, - "nodeType": "Block", - "src": "6692:246:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3282, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6702:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3284, - "indexExpression": { - "argumentTypes": null, - "id": 3283, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6711:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6702:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3289, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6738:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3285, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6719:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3287, - "indexExpression": { - "argumentTypes": null, - "id": 3286, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6728:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6719:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "6719:18:25", - "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": 3290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6719:26:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6702:43:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3292, - "nodeType": "ExpressionStatement", - "src": "6702:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3293, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6755:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3297, - "indexExpression": { - "argumentTypes": null, - "id": 3294, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6763:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6755:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3298, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3295, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6769:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6769:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6755:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3306, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6813:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3299, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6783:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3301, - "indexExpression": { - "argumentTypes": null, - "id": 3300, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6791:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6783:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3304, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3302, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6797:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6797:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6783:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "6783:29:25", - "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": 3307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6783:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6755:65:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3309, - "nodeType": "ExpressionStatement", - "src": "6755:65:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3310, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6830:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3312, - "indexExpression": { - "argumentTypes": null, - "id": 3311, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6839:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6830:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3317, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6862:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3313, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6845:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3315, - "indexExpression": { - "argumentTypes": null, - "id": 3314, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6854:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6845:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2899, - "src": "6845:16:25", - "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": 3318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6845:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6830:39:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3320, - "nodeType": "ExpressionStatement", - "src": "6830:39:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3322, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6893:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3323, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6899:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3324, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6903:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3321, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "6884:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6884:26:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3326, - "nodeType": "EmitStatement", - "src": "6879:31:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6927:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3281, - "id": 3328, - "nodeType": "Return", - "src": "6920:11:25" - } - ] - }, - "documentation": null, - "id": 3330, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3273, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6623:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3272, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6623:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3275, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6637:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3274, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6637:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3277, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6649:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3276, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6649:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6622:39:25" - }, - "payable": false, - "returnParameters": { - "id": 3281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3280, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6678:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3279, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6678:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6677:14:25" - }, - "scope": 3415, - "src": "6601:337:25", - "stateMutability": "nonpayable", - "superFunction": 3022, - "visibility": "public" - }, - { - "body": { - "id": 3345, - "nodeType": "Block", - "src": "7312:52:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3339, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7329:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3341, - "indexExpression": { - "argumentTypes": null, - "id": 3340, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3332, - "src": "7337:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7329:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3343, - "indexExpression": { - "argumentTypes": null, - "id": 3342, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "7349:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7329:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3338, - "id": 3344, - "nodeType": "Return", - "src": "7322:35:25" - } - ] - }, - "documentation": null, - "id": 3346, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3332, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3346, - "src": "7238:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3331, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7238:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3334, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3346, - "src": "7258:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3333, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7258:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7237:37:25" - }, - "payable": false, - "returnParameters": { - "id": 3338, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3337, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3346, - "src": "7296:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3336, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7296:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7295:16:25" - }, - "scope": 3415, - "src": "7219:145:25", - "stateMutability": "view", - "superFunction": 2993, - "visibility": "public" - }, - { - "body": { - "id": 3386, - "nodeType": "Block", - "src": "7820:216:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3357, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7830:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3361, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3358, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7838:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7838:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7830:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3362, - "indexExpression": { - "argumentTypes": null, - "id": 3360, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3348, - "src": "7850:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7830:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3363, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "7861:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7830:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3365, - "nodeType": "ExpressionStatement", - "src": "7830:37:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3367, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7891:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7891:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3369, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3348, - "src": "7903:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3370, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "7912:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3366, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "7882:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7882:37:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3372, - "nodeType": "EmitStatement", - "src": "7877:42:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3377, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7977:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7977:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3379, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "7989:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3380, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4564, - "src": "7997:4:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_EmptyToken_$3415", - "typeString": "contract EmptyToken" - } - }, - { - "argumentTypes": null, - "id": 3381, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3352, - "src": "8003:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_EmptyToken_$3415", - "typeString": "contract EmptyToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3374, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3348, - "src": "7952:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3373, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3051, - "src": "7929:22:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3051_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7929:31:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3051", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3050, - "src": "7929:47:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7929:79:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3383, - "nodeType": "ExpressionStatement", - "src": "7929:79:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8025:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3356, - "id": 3385, - "nodeType": "Return", - "src": "8018:11:25" - } - ] - }, - "documentation": null, - "id": 3387, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3348, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7748:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3347, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7748:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3350, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7765:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3349, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7765:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3352, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7778:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3351, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7778:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7747:42:25" - }, - "payable": false, - "returnParameters": { - "id": 3356, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3355, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7806:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3354, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7806:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7805:14:25" - }, - "scope": 3415, - "src": "7724:312:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3393, - "nodeType": "Block", - "src": "8254:25:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3390, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8264:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8264:8:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3392, - "nodeType": "ExpressionStatement", - "src": "8264:8:25" - } - ] - }, - "documentation": null, - "id": 3394, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3388, - "nodeType": "ParameterList", - "parameters": [], - "src": "8236:2:25" - }, - "payable": true, - "returnParameters": { - "id": 3389, - "nodeType": "ParameterList", - "parameters": [], - "src": "8254:0:25" - }, - "scope": 3415, - "src": "8227:52:25", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3413, - "nodeType": "Block", - "src": "8617:76:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3409, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "8672:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3410, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "8679:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3406, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "8649:12:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3405, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3039, - "src": "8634:14:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3039_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8634:28:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3039", - "typeString": "contract ERC20Interface" - } - }, - "id": 3408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3002, - "src": "8634:37:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8634:52:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3404, - "id": 3412, - "nodeType": "Return", - "src": "8627:59:25" - } - ] - }, - "documentation": null, - "id": 3414, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3401, - "modifierName": { - "argumentTypes": null, - "id": 3400, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "8584:9:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8584:9:25" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3396, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "8542:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3395, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8542:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3398, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "8564:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3397, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8564:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8541:35:25" - }, - "payable": false, - "returnParameters": { - "id": 3404, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3403, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "8603:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3402, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8603:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8602:14:25" - }, - "scope": 3415, - "src": "8511:182:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3416, - "src": "3506:5189:25" - } - ], - "src": "0:8695:25" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0x4860c376b078ad79c54452991dfa21d46791b0e5", - "transactionHash": "0x2a507536ff667f76bc9ec99f677eb4d7ba75abc00377f0ce6d849a31c29b2c2f" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-09-26T08:56:03.737Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/Owned.json b/safe-contracts/build/contracts/test/Owned.json deleted file mode 100644 index cf5dab3b..00000000 --- a/safe-contracts/build/contracts/test/Owned.json +++ /dev/null @@ -1,14264 +0,0 @@ -{ - "contractName": "Owned", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610424806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806379ba5097146100675780638da5cb5b1461007e578063d4ee1d90146100d5578063f2fde38b1461012c575b600080fd5b34801561007357600080fd5b5061007c61016f565b005b34801561008a57600080fd5b5061009361030e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610333565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b5061016d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610359565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101cb57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103b457600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582057ddc5cc13a1eca45f4149a4f2748fc00bc0fc8b38da47cbd54fabc1f1a3286f0029", - "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806379ba5097146100675780638da5cb5b1461007e578063d4ee1d90146100d5578063f2fde38b1461012c575b600080fd5b34801561007357600080fd5b5061007c61016f565b005b34801561008a57600080fd5b5061009361030e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610333565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b5061016d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610359565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101cb57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103b457600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582057ddc5cc13a1eca45f4149a4f2748fc00bc0fc8b38da47cbd54fabc1f1a3286f0029", - "sourceMap": "2663:595:26:-;;;2817:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;2817:56:26;2856:10;2848:5;;:18;;;;;;;;;;;;;;;;;;2663:595;;;;;;", - "deployedSourceMap": "2663:595:26:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:26;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:26;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:26;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;3131:8;;;;;;;;;;;3117:22;;:10;:22;;;3109:31;;;;;;;;3183:8;;;;;;;;;;;3155:37;;3176:5;;;;;;;;;;;3155:37;;;;;;;;;;;;3210:8;;;;;;;;;;;3202:5;;:16;;;;;;;;;;;;;;;;;;3247:1;3228:8;;:21;;;;;;;;;;;;;;;;;;3065:191::o;2684:20::-;;;;;;;;;;;;;:::o;2710:23::-;;;;;;;;;;;;;:::o;2960:100::-;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;3044:9;3033:8;;:20;;;;;;;;;;;;;;;;;;2960:100;:::o", - "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract TestToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n string public symbol;\n string public name;\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n symbol = \"TKN\";\n name = \"Token Example\";\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "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": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "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": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "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": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "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": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "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": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "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": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "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": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "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": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "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": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "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": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "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": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "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": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "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": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "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": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "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": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "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": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "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": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "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": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-09-26T08:32:07.660Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/SafeMath.json b/safe-contracts/build/contracts/test/SafeMath.json deleted file mode 100644 index 9615bc52..00000000 --- a/safe-contracts/build/contracts/test/SafeMath.json +++ /dev/null @@ -1,14189 +0,0 @@ -{ - "contractName": "SafeMath", - "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058207b85988d9fca11f15e3ba4c2a2e5ad1c0debc1a24f938c9db30c754a373620960029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058207b85988d9fca11f15e3ba4c2a2e5ad1c0debc1a24f938c9db30c754a373620960029", - "sourceMap": "636:497:26:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "636:497:26:-;;;;;;;;", - "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract TestToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n string public symbol;\n string public name;\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n symbol = \"TKN\";\n name = \"Token Example\";\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "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": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "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": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "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": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "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": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "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": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "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": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "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": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "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": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "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": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "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": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "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": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "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": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "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": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "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": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "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": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "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": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "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": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "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": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-09-26T08:32:07.665Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/TestToken.json b/safe-contracts/build/contracts/test/TestToken.json deleted file mode 100644 index dd5c9dbf..00000000 --- a/safe-contracts/build/contracts/test/TestToken.json +++ /dev/null @@ -1,14541 +0,0 @@ -{ - "contractName": "TestToken", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "tokens", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "tokenOwner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "tokens", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenOwner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenOwner", - "type": "address" - }, - { - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "remaining", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "approveAndCall", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "tokenAddress", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transferAnyERC20Token", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600381526020017f544b4e0000000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000221565b506040805190810160405280600d81526020017f546f6b656e204578616d706c650000000000000000000000000000000000000081525060039080519060200190620000ed92919062000221565b506012600460006101000a81548160ff021916908360ff160217905550600460009054906101000a900460ff1660ff16600a0a620f424002600581905550600554600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040518082815260200191505060405180910390a3620002d0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026457805160ff191683800117855562000295565b8280016001018555821562000295579182015b828111156200029457825182559160200191906001019062000277565b5b509050620002a49190620002a8565b5090565b620002cd91905b80821115620002c9576000816000905550600101620002af565b5090565b90565b6114e380620002e06000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e0578063095ea7b31461017057806318160ddd146101d557806323b872dd14610200578063313ce5671461028557806370a08231146102b657806379ba50971461030d5780638da5cb5b1461032457806395d89b411461037b578063a9059cbb1461040b578063cae9ca5114610470578063d4ee1d901461051b578063dc39d06d14610572578063dd62ed3e146105d7578063f2fde38b1461064e575b600080fd5b3480156100ec57600080fd5b506100f5610691565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013557808201518184015260208101905061011a565b50505050905090810190601f1680156101625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017c57600080fd5b506101bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072f565b604051808215151515815260200191505060405180910390f35b3480156101e157600080fd5b506101ea610821565b6040518082815260200191505060405180910390f35b34801561020c57600080fd5b5061026b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087c565b604051808215151515815260200191505060405180910390f35b34801561029157600080fd5b5061029a610b27565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102c257600080fd5b506102f7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b3a565b6040518082815260200191505060405180910390f35b34801561031957600080fd5b50610322610b83565b005b34801561033057600080fd5b50610339610d22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038757600080fd5b50610390610d47565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103d05780820151818401526020810190506103b5565b50505050905090810190601f1680156103fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041757600080fd5b50610456600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610de5565b604051808215151515815260200191505060405180910390f35b34801561047c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f80565b604051808215151515815260200191505060405180910390f35b34801561052757600080fd5b506105306111cf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057e57600080fd5b506105bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111f5565b604051808215151515815260200191505060405180910390f35b3480156105e357600080fd5b50610638600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611359565b6040518082815260200191505060405180910390f35b34801561065a57600080fd5b5061068f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e0565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107275780601f106106fc57610100808354040283529160200191610727565b820191906000526020600020905b81548152906001019060200180831161070a57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610877600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461147f90919063ffffffff16565b905090565b60006108d082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109a282600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a7482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bdf57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ddd5780601f10610db257610100808354040283529160200191610ddd565b820191906000526020600020905b815481529060010190602001808311610dc057829003601f168201915b505050505081565b6000610e3982600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ece82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561115d578082015181840152602081019050611142565b50505050905090810190601f16801561118a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156111ac57600080fd5b505af11580156111c0573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561125257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561131657600080fd5b505af115801561132a573d6000803e3d6000fd5b505050506040513d602081101561134057600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143b57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561149057600080fd5b818303905092915050565b600081830190508281101515156114b157600080fd5b929150505600a165627a7a72305820e93a82d67ce3df799c1bfea59d7f6b269216cff0ed6e6c3d0c4b551065d3f5aa0029", - "deployedBytecode": "0x6080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e0578063095ea7b31461017057806318160ddd146101d557806323b872dd14610200578063313ce5671461028557806370a08231146102b657806379ba50971461030d5780638da5cb5b1461032457806395d89b411461037b578063a9059cbb1461040b578063cae9ca5114610470578063d4ee1d901461051b578063dc39d06d14610572578063dd62ed3e146105d7578063f2fde38b1461064e575b600080fd5b3480156100ec57600080fd5b506100f5610691565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013557808201518184015260208101905061011a565b50505050905090810190601f1680156101625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017c57600080fd5b506101bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072f565b604051808215151515815260200191505060405180910390f35b3480156101e157600080fd5b506101ea610821565b6040518082815260200191505060405180910390f35b34801561020c57600080fd5b5061026b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087c565b604051808215151515815260200191505060405180910390f35b34801561029157600080fd5b5061029a610b27565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102c257600080fd5b506102f7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b3a565b6040518082815260200191505060405180910390f35b34801561031957600080fd5b50610322610b83565b005b34801561033057600080fd5b50610339610d22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038757600080fd5b50610390610d47565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103d05780820151818401526020810190506103b5565b50505050905090810190601f1680156103fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041757600080fd5b50610456600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610de5565b604051808215151515815260200191505060405180910390f35b34801561047c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f80565b604051808215151515815260200191505060405180910390f35b34801561052757600080fd5b506105306111cf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057e57600080fd5b506105bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111f5565b604051808215151515815260200191505060405180910390f35b3480156105e357600080fd5b50610638600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611359565b6040518082815260200191505060405180910390f35b34801561065a57600080fd5b5061068f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e0565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107275780601f106106fc57610100808354040283529160200191610727565b820191906000526020600020905b81548152906001019060200180831161070a57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610877600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461147f90919063ffffffff16565b905090565b60006108d082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109a282600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a7482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bdf57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ddd5780601f10610db257610100808354040283529160200191610ddd565b820191906000526020600020905b815481529060010190602001808311610dc057829003601f168201915b505050505081565b6000610e3982600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ece82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561115d578082015181840152602081019050611142565b50505050905090810190601f16801561118a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156111ac57600080fd5b505af11580156111c0573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561125257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561131657600080fd5b505af115801561132a573d6000803e3d6000fd5b505050506040513d602081101561134057600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143b57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561149057600080fd5b818303905092915050565b600081830190508281101515156114b157600080fd5b929150505600a165627a7a72305820e93a82d67ce3df799c1bfea59d7f6b269216cff0ed6e6c3d0c4b551065d3f5aa0029", - "sourceMap": "3506:5295:26:-;;;3966:256;8:9:-1;5:2;;;30:1;27;20:12;5:2;3966:256:26;2856:10;2848:5;;:18;;;;;;;;;;;;;;;;;;3997:14;;;;;;;;;;;;;;;;;;:6;:14;;;;;;;;;;;;:::i;:::-;;4021:22;;;;;;;;;;;;;;;;;;:4;:22;;;;;;;;;;;;:::i;:::-;;4064:2;4053:8;;:13;;;;;;;;;;;;;;;;;;4110:8;;;;;;;;;;;4105:14;;4101:2;:18;4091:7;:28;4076:12;:43;;;;4147:12;;4129:8;:15;4138:5;;;;;;;;;;;4129:15;;;;;;;;;;;;;;;:30;;;;4195:5;;;;;;;;;;;4174:41;;4191:1;4174:41;;;4202:12;;4174:41;;;;;;;;;;;;;;;;;;3506:5295;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "3506:5295:26:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8370:8;;;3612:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3612:19:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3612:19:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5971:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5971:204:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4409:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4409:112:26;;;;;;;;;;;;;;;;;;;;;;;6707:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6707:337:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3637:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3637:21:26;;;;;;;;;;;;;;;;;;;;;;;;;;;4742:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4742:118:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:26;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:26;;;;;;;;;;;;;;;;;;;;;;;;;;;3586;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3586:20:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3586:20:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5203:262:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7830:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7830:312:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:26;;;;;;;;;;;;;;;;;;;;;;;;;;;8617:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8617:182:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7325:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7325:145:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5971:204::-;6034:12;6089:6;6058:7;:19;6066:10;6058:19;;;;;;;;;;;;;;;:28;6078:7;6058:28;;;;;;;;;;;;;;;:37;;;;6131:7;6110:37;;6119:10;6110:37;;;6140:6;6110:37;;;;;;;;;;;;;;;;;;6164:4;6157:11;;5971:204;;;;:::o;4409:112::-;4453:4;4476:38;4493:8;:20;4510:1;4493:20;;;;;;;;;;;;;;;;4476:12;;:16;;:38;;;;:::i;:::-;4469:45;;4409:112;:::o;6707:337::-;6784:12;6825:26;6844:6;6825:8;:14;6834:4;6825:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;6808:8;:14;6817:4;6808:14;;;;;;;;;;;;;;;:43;;;;6889:37;6919:6;6889:7;:13;6897:4;6889:13;;;;;;;;;;;;;;;:25;6903:10;6889:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;6861:7;:13;6869:4;6861:13;;;;;;;;;;;;;;;:25;6875:10;6861:25;;;;;;;;;;;;;;;:65;;;;6951:24;6968:6;6951:8;:12;6960:2;6951:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;6936:8;:12;6945:2;6936:12;;;;;;;;;;;;;;;:39;;;;7005:2;6990:26;;6999:4;6990:26;;;7009:6;6990:26;;;;;;;;;;;;;;;;;;7033:4;7026:11;;6707:337;;;;;:::o;3637:21::-;;;;;;;;;;;;;:::o;4742:118::-;4802:12;4833:8;:20;4842:10;4833:20;;;;;;;;;;;;;;;;4826:27;;4742:118;;;:::o;3065:191::-;3131:8;;;;;;;;;;;3117:22;;:10;:22;;;3109:31;;;;;;;;3183:8;;;;;;;;;;;3155:37;;3176:5;;;;;;;;;;;3155:37;;;;;;;;;;;;3210:8;;;;;;;;;;;3202:5;;:16;;;;;;;;;;;;;;;;;;3247:1;3228:8;;:21;;;;;;;;;;;;;;;;;;3065:191::o;2684:20::-;;;;;;;;;;;;;:::o;3586:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5203:262::-;5262:12;5309:32;5334:6;5309:8;:20;5318:10;5309:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5286:8;:20;5295:10;5286:20;;;;;;;;;;;;;;;:55;;;;5366:24;5383:6;5366:8;:12;5375:2;5366:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;5351:8;:12;5360:2;5351:12;;;;;;;;;;;;;;;:39;;;;5426:2;5405:32;;5414:10;5405:32;;;5430:6;5405:32;;;;;;;;;;;;;;;;;;5454:4;5447:11;;5203:262;;;;:::o;7830:312::-;7912:12;7967:6;7936:7;:19;7944:10;7936:19;;;;;;;;;;;;;;;:28;7956:7;7936:28;;;;;;;;;;;;;;;:37;;;;8009:7;7988:37;;7997:10;7988:37;;;8018:6;7988:37;;;;;;;;;;;;;;;;;;8058:7;8035:47;;;8083:10;8095:6;8103:4;8109;8035:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;8035:79:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8035:79:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8035:79:26;;;;8131:4;8124:11;;7830:312;;;;;:::o;2710:23::-;;;;;;;;;;;;;:::o;8617:182::-;8709:12;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;8755:12;8740:37;;;8778:5;;;;;;;;;;;8785:6;8740:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8740:52:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8740:52:26;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8740:52:26;;;;;;;;;;;;;;;;8733:59;;8617:182;;;;:::o;7325:145::-;7402:14;7435:7;:19;7443:10;7435:19;;;;;;;;;;;;;;;:28;7455:7;7435:28;;;;;;;;;;;;;;;;7428:35;;7325:145;;;;:::o;2960:100::-;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;3044:9;3033:8;;:20;;;;;;;;;;;;;;;;;;2960:100;:::o;775:111::-;827:6;858:1;853;:6;;845:15;;;;;;;;878:1;874;:5;870:9;;775:111;;;;:::o;659:::-;711:6;737:1;733;:5;729:9;;761:1;756;:6;;748:15;;;;;;;;659:111;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract TestToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n string public symbol;\n string public name;\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n symbol = \"TKN\";\n name = \"Token Example\";\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "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": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "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": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "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": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "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": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "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": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "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": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "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": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "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": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "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": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "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": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "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": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "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": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "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": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "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": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "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": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "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": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "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": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "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": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0x63f77b7e9a9fb2cc566671e3ecbdad8d969ae410", - "transactionHash": "0xbb5fd5b0cda13b1f61dcd022e0619cb43e9d5cb78ce71264fd95d4555ac115b0" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-09-26T08:56:03.745Z" -} \ No newline at end of file From c78fa2fb29b29b71da8d290c11a8a91f3829c1ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADnez?= Date: Mon, 29 Apr 2019 13:13:32 +0200 Subject: [PATCH 02/12] Update safeMaster setup parameters --- src/logic/contracts/safeContracts.js | 3 ++- src/logic/wallets/ethAddresses.js | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/logic/contracts/safeContracts.js b/src/logic/contracts/safeContracts.js index c1116a91..b875f9e6 100644 --- a/src/logic/contracts/safeContracts.js +++ b/src/logic/contracts/safeContracts.js @@ -5,6 +5,7 @@ import { getWeb3 } from '~/logic/wallets/getWeb3' import GnosisSafeSol from '#/GnosisSafe.json' import ProxyFactorySol from '#/ProxyFactory.json' import { calculateGasOf, calculateGasPrice } from '~/logic/wallets/ethTransactions' +import { ZERO_ADDRESS } from '~/logic/wallets/ethAddresses' let proxyFactoryMaster let safeMaster @@ -61,7 +62,7 @@ export const getSafeMasterContract = async () => { export const deploySafeContract = async (safeAccounts: string[], numConfirmations: number, userAccount: string) => { const gnosisSafeData = await safeMaster.contract.methods - .setup(safeAccounts, numConfirmations, '0x0000000000000000000000000000000000000000', '0x') + .setup(safeAccounts, numConfirmations, ZERO_ADDRESS, '0x', ZERO_ADDRESS, 0, ZERO_ADDRESS) .encodeABI() const proxyFactoryData = proxyFactoryMaster.contract.methods .createProxy(safeMaster.address, gnosisSafeData) diff --git a/src/logic/wallets/ethAddresses.js b/src/logic/wallets/ethAddresses.js index df1ec918..b116e2b9 100644 --- a/src/logic/wallets/ethAddresses.js +++ b/src/logic/wallets/ethAddresses.js @@ -1,4 +1,6 @@ // @flow +export const ZERO_ADDRESS = ' 0x0000000000000000000000000000000000000000' + export const sameAddress = (firstAddress: string, secondAddress: string): boolean => { if (!firstAddress) { return false From 7be68f95de0b0338f9340546e8c548487028a04b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADnez?= Date: Mon, 29 Apr 2019 13:15:07 +0200 Subject: [PATCH 03/12] eslint fixes --- src/routes/safe/store/actions/fetchTokenBalances.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/routes/safe/store/actions/fetchTokenBalances.js b/src/routes/safe/store/actions/fetchTokenBalances.js index 96437d7c..a9b3d503 100644 --- a/src/routes/safe/store/actions/fetchTokenBalances.js +++ b/src/routes/safe/store/actions/fetchTokenBalances.js @@ -36,11 +36,10 @@ const fetchTokenBalances = (safeAddress: string, tokens: List) => async ( try { const withBalances = await Promise.all( - tokens - .map(async token => TokenBalanceRecord({ - address: token.address, - balance: await calculateBalanceOf(token.address, safeAddress, token.decimals), - })), + tokens.map(async token => TokenBalanceRecord({ + address: token.address, + balance: await calculateBalanceOf(token.address, safeAddress, token.decimals), + })), ) dispatch(updateSafe({ address: safeAddress, balances: List(withBalances) })) From d6d9e7cb57dc95b6da51f52e18177102930249db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADnez?= Date: Mon, 29 Apr 2019 14:27:17 +0200 Subject: [PATCH 04/12] Remove safe-contracts generated --- safe-contracts/build/contracts/BaseSafe.json | 1151 - .../build/contracts/CreateAndAddModules.json | 1283 - .../build/contracts/DailyLimitModule.json | 6901 ---- .../contracts/DelegateConstructorProxy.json | 638 - safe-contracts/build/contracts/Enum.json | 153 - .../build/contracts/EtherPaymentFallback.json | 169 - safe-contracts/build/contracts/Executor.json | 3129 -- .../build/contracts/GnosisSafe.json | 22966 ------------- .../build/contracts/ISignatureValidator.json | 423 - .../build/contracts/MasterCopy.json | 796 - .../build/contracts/Migrations.json | 1372 - .../build/contracts/MockContract.json | 28238 ---------------- .../build/contracts/MockInterface.json | 28171 --------------- safe-contracts/build/contracts/Module.json | 1304 - .../build/contracts/ModuleManager.json | 8792 ----- safe-contracts/build/contracts/MultiSend.json | 383 - .../build/contracts/OwnerManager.json | 12921 ------- .../build/contracts/PayingProxy.json | 1592 - safe-contracts/build/contracts/Proxy.json | 772 - .../build/contracts/ProxyFactory.json | 3087 -- safe-contracts/build/contracts/SafeMath.json | 3279 -- .../build/contracts/SecuredTokenTransfer.json | 785 - .../build/contracts/SelfAuthorized.json | 481 - .../build/contracts/SignatureDecoder.json | 1569 - .../build/contracts/SocialRecoveryModule.json | 7366 ---- .../build/contracts/StateChannelModule.json | 5521 --- safe-contracts/build/contracts/Token.json | 361 - .../build/contracts/WhitelistModule.json | 4560 --- 28 files changed, 148163 deletions(-) delete mode 100644 safe-contracts/build/contracts/BaseSafe.json delete mode 100644 safe-contracts/build/contracts/CreateAndAddModules.json delete mode 100644 safe-contracts/build/contracts/DailyLimitModule.json delete mode 100644 safe-contracts/build/contracts/DelegateConstructorProxy.json delete mode 100644 safe-contracts/build/contracts/Enum.json delete mode 100644 safe-contracts/build/contracts/EtherPaymentFallback.json delete mode 100644 safe-contracts/build/contracts/Executor.json delete mode 100644 safe-contracts/build/contracts/GnosisSafe.json delete mode 100644 safe-contracts/build/contracts/ISignatureValidator.json delete mode 100644 safe-contracts/build/contracts/MasterCopy.json delete mode 100644 safe-contracts/build/contracts/Migrations.json delete mode 100644 safe-contracts/build/contracts/MockContract.json delete mode 100644 safe-contracts/build/contracts/MockInterface.json delete mode 100644 safe-contracts/build/contracts/Module.json delete mode 100644 safe-contracts/build/contracts/ModuleManager.json delete mode 100644 safe-contracts/build/contracts/MultiSend.json delete mode 100644 safe-contracts/build/contracts/OwnerManager.json delete mode 100644 safe-contracts/build/contracts/PayingProxy.json delete mode 100644 safe-contracts/build/contracts/Proxy.json delete mode 100644 safe-contracts/build/contracts/ProxyFactory.json delete mode 100644 safe-contracts/build/contracts/SafeMath.json delete mode 100644 safe-contracts/build/contracts/SecuredTokenTransfer.json delete mode 100644 safe-contracts/build/contracts/SelfAuthorized.json delete mode 100644 safe-contracts/build/contracts/SignatureDecoder.json delete mode 100644 safe-contracts/build/contracts/SocialRecoveryModule.json delete mode 100644 safe-contracts/build/contracts/StateChannelModule.json delete mode 100644 safe-contracts/build/contracts/Token.json delete mode 100644 safe-contracts/build/contracts/WhitelistModule.json 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 From b98cf81b7deab5805b4e30ff8a15054af404b2e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADnez?= Date: Mon, 29 Apr 2019 14:30:14 +0200 Subject: [PATCH 05/12] Import gnosis-contracts --- package.json | 1 + src/logic/contracts/safeContracts.js | 4 +- .../load/components/DetailsForm/index.jsx | 2 +- yarn.lock | 127 ++++++++++++++++-- 4 files changed, 121 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 22d824b0..0e2413b7 100644 --- a/package.json +++ b/package.json @@ -65,6 +65,7 @@ "verbose": true }, "dependencies": { + "@gnosis.pm/safe-contracts": "^1.0.0", "@gnosis.pm/util-contracts": "^2.0.0", "@material-ui/core": "^3.9.3", "@material-ui/icons": "^3.0.1", diff --git a/src/logic/contracts/safeContracts.js b/src/logic/contracts/safeContracts.js index b875f9e6..9645a849 100644 --- a/src/logic/contracts/safeContracts.js +++ b/src/logic/contracts/safeContracts.js @@ -2,8 +2,8 @@ import contract from 'truffle-contract' import { ensureOnce } from '~/utils/singleton' import { getWeb3 } from '~/logic/wallets/getWeb3' -import GnosisSafeSol from '#/GnosisSafe.json' -import ProxyFactorySol from '#/ProxyFactory.json' +import GnosisSafeSol from '@gnosis.pm/safe-contracts/build/contracts/GnosisSafe.json' +import ProxyFactorySol from '@gnosis.pm/safe-contracts/build/contracts/ProxyFactory.json' import { calculateGasOf, calculateGasPrice } from '~/logic/wallets/ethTransactions' import { ZERO_ADDRESS } from '~/logic/wallets/ethAddresses' diff --git a/src/routes/load/components/DetailsForm/index.jsx b/src/routes/load/components/DetailsForm/index.jsx index 2c170a9a..e14d9585 100644 --- a/src/routes/load/components/DetailsForm/index.jsx +++ b/src/routes/load/components/DetailsForm/index.jsx @@ -14,7 +14,7 @@ import Paragraph from '~/components/layout/Paragraph' import OpenPaper from '~/components/Stepper/OpenPaper' import { FIELD_LOAD_NAME, FIELD_LOAD_ADDRESS } from '~/routes/load/components/fields' import { getWeb3 } from '~/logic/wallets/getWeb3' -import SafeProxy from '#/Proxy.json' +import SafeProxy from '@gnosis.pm/safe-contracts/build/contracts/Proxy.json' import { getSafeMasterContract } from '~/logic/contracts/safeContracts' type Props = { diff --git a/yarn.lock b/yarn.lock index a55ef03a..150322e8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1282,6 +1282,15 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.2.tgz#63985d3d8b02530e0869962f4da09142ee8e200e" integrity sha512-n/VQ4mbfr81aqkx/XmVicOLjviMuy02eenSdJY33SVA7S2J42EU0P1H0mOogfYedb3wXA0d/LVtBrgTSm04WEA== +"@gnosis.pm/safe-contracts@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@gnosis.pm/safe-contracts/-/safe-contracts-1.0.0.tgz#2b562b1e23a0da1047a9f38ef71a70f811e75dd9" + integrity sha512-IT40DhKr1tAWRcSTpZ0wRfC9thrHzNzHzaPBQHP0Jq8fLVj+MIrRxY1adBZUppQ4W58XXnK0K/qj7IbyyigHlA== + dependencies: + openzeppelin-solidity "^2.0.0" + solc "^0.5.0" + truffle-hdwallet-provider "0.0.7-beta.1" + "@gnosis.pm/util-contracts@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@gnosis.pm/util-contracts/-/util-contracts-2.0.0.tgz#562b14a2d6cb4a59189476dd0f6aaeba5f65abe2" @@ -2445,6 +2454,11 @@ aes-js@3.0.0: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= +aes-js@^0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-0.2.4.tgz#94b881ab717286d015fa219e08fb66709dda5a3d" + integrity sha1-lLiBq3FyhtAV+iGeCPtmcJ3aWj0= + aes-js@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" @@ -3866,6 +3880,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= +base-x@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-1.1.0.tgz#42d3d717474f9ea02207f6d1aa1f426913eeb7ac" + integrity sha1-QtPXF0dPnqAiB/bRqh9CaRPut6w= + base-x@^3.0.2: version "3.0.5" resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.5.tgz#d3ada59afed05b921ab581ec3112e6444ba0795a" @@ -4240,6 +4259,13 @@ bs58@^2.0.1: resolved "https://registry.yarnpkg.com/bs58/-/bs58-2.0.1.tgz#55908d58f1982aba2008fa1bed8f91998a29bf8d" integrity sha1-VZCNWPGYKrogCPob7Y+RmYopv40= +bs58@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-3.1.0.tgz#d4c26388bf4804cac714141b1945aa47e5eb248e" + integrity sha1-1MJjiL9IBMrHFBQbGUWqR+XrJI4= + dependencies: + base-x "^1.1.0" + bs58@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" @@ -4247,6 +4273,14 @@ bs58@^4.0.0: dependencies: base-x "^3.0.2" +bs58check@^1.0.8: + version "1.3.4" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-1.3.4.tgz#c52540073749117714fa042c3047eb8f9151cbf8" + integrity sha1-xSVABzdJEXcU+gQsMEfrj5FRy/g= + dependencies: + bs58 "^3.1.0" + create-hash "^1.1.0" + bs58check@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" @@ -6816,7 +6850,7 @@ ethereumjs-util@5.2.0, ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumj safe-buffer "^5.1.1" secp256k1 "^3.0.1" -ethereumjs-util@^4.3.0: +ethereumjs-util@^4.3.0, ethereumjs-util@^4.4.0: version "4.5.0" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz#3e9428b317eebda3d7260d854fddda954b1f1bc6" integrity sha1-PpQosxfuvaPXJg2FT93alUsfG8Y= @@ -6857,6 +6891,19 @@ ethereumjs-vm@2.6.0, ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4, ethereumjs-vm@^ rustbn.js "~0.2.0" safe-buffer "^5.1.1" +ethereumjs-wallet@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-0.6.0.tgz#82763b1697ee7a796be7155da9dfb49b2f98cfdb" + integrity sha1-gnY7Fpfuenlr5xVdqd+0my+Yz9s= + dependencies: + aes-js "^0.2.3" + bs58check "^1.0.8" + ethereumjs-util "^4.4.0" + hdkey "^0.7.0" + scrypt.js "^0.2.0" + utf8 "^2.1.1" + uuid "^2.0.1" + ethereumjs-wallet@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-0.6.2.tgz#67244b6af3e8113b53d709124b25477b64aeccda" @@ -8330,6 +8377,14 @@ hastscript@^5.0.0: property-information "^5.0.1" space-separated-tokens "^1.0.0" +hdkey@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-0.7.1.tgz#caee4be81aa77921e909b8d228dd0f29acaee632" + integrity sha1-yu5L6BqneSHpCbjSKN0PKayu5jI= + dependencies: + coinstring "^2.0.0" + secp256k1 "^3.0.1" + hdkey@^1.0.0, hdkey@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-1.1.1.tgz#c2b3bfd5883ff9529b72f2f08b28be0972a9f64a" @@ -11663,6 +11718,11 @@ opener@^1.5.1: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== +openzeppelin-solidity@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/openzeppelin-solidity/-/openzeppelin-solidity-2.2.0.tgz#1f0e857f53bda29b77a8e72f9a629db81015fd34" + integrity sha512-HfQq0xyT+EPs/lTWEd5Odu4T7CYdYe+qwf54EH28FQZthp4Bs6IWvOlOumTdS2dvpwZoTXURAopHn2LN1pwAGQ== + opn@5.4.0: version "5.4.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035" @@ -13243,14 +13303,6 @@ react-popper@^1.3.3: typed-styles "^0.0.7" warning "^4.0.2" -react-qr-svg@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/react-qr-svg/-/react-qr-svg-2.2.1.tgz#f6f25820fdb2c39ad0d66a14a758e2f575717c68" - integrity sha512-rLDCZI9pIqD5lbBIatrqUMhP1gqQ7glqubXO/m/X87ikEPhXuY0hMLhYMuKoH4834G36ap8Az0HI4bXEJUN//w== - dependencies: - prop-types "^15.5.8" - qr.js "0.0.0" - react-redux@7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.0.2.tgz#34b280a3482aaf60e7d4a504b1295165cbe6b86a" @@ -14654,6 +14706,20 @@ solc@0.5.0: semver "^5.5.0" yargs "^11.0.0" +solc@^0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.5.7.tgz#d84697ac5cc63d9b2139bfb349cec64b64861cdc" + integrity sha512-DaYFzB3AAYjzPtgUl9LenPY2xjI3wG9k8U8T8YE/sXHVIoCirCY5MB6mhcFPgk/VyUtaWZPUCWiYS1E6RSiiqw== + dependencies: + command-exists "^1.2.8" + fs-extra "^0.30.0" + keccak "^1.0.2" + memorystream "^0.3.1" + require-from-string "^2.0.0" + semver "^5.5.0" + tmp "0.0.33" + yargs "^11.0.0" + solidity-sha3@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/solidity-sha3/-/solidity-sha3-0.4.1.tgz#17577e93f6cfd58489c4ec7f2da3047530329ec1" @@ -15968,6 +16034,16 @@ truffle-external-compile@^1.0.8: truffle-expect "^0.0.7" web3-utils "1.0.0-beta.37" +truffle-hdwallet-provider@0.0.7-beta.1: + version "0.0.7-beta.1" + resolved "https://registry.yarnpkg.com/truffle-hdwallet-provider/-/truffle-hdwallet-provider-0.0.7-beta.1.tgz#ca5107a8c470eba9811f3ca760b53ff611e8485a" + integrity sha512-klqrlm19xkXuoYKTqjz+KSR/X2BMplqsgE7GcIxFkp2oR1NKqKFd8U/eAojpkpBLYd5W7gbFHMxhWKjQYViKKA== + dependencies: + bip39 "^2.2.0" + ethereumjs-wallet "0.6.0" + web3 "^0.18.2" + web3-provider-engine "^14.0.5" + truffle-init@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/truffle-init/-/truffle-init-1.0.7.tgz#c3de57fbddfa77ae93642ae025f41c1157de2ba7" @@ -16565,6 +16641,11 @@ uuid@3.3.2, uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0, uuid@^3.2.1, uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== +uuid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + integrity sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho= + v8-compile-cache@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c" @@ -17248,6 +17329,32 @@ web3-provider-engine@14.1.0: xhr "^2.2.0" xtend "^4.0.1" +web3-provider-engine@^14.0.5: + version "14.2.0" + resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-14.2.0.tgz#2efec157b2c429c5c674c079aea96b0a06de8b3d" + integrity sha512-sfLH5VhGjJrJJT5WcF8aGehcIKRUQ553q9tjQkkLaKU2AaLsRcwffnnWvrgeTkmKSf0y9dwkDTa48RVp+GUCSg== + dependencies: + async "^2.5.0" + backoff "^2.5.0" + clone "^2.0.0" + cross-fetch "^2.1.0" + eth-block-tracker "^3.0.0" + eth-json-rpc-infura "^3.1.0" + eth-sig-util "^1.4.2" + ethereumjs-block "^1.2.2" + ethereumjs-tx "^1.2.0" + ethereumjs-util "^5.1.5" + ethereumjs-vm "^2.3.4" + json-rpc-error "^2.0.0" + json-stable-stringify "^1.0.1" + promise-to-callback "^1.0.0" + readable-stream "^2.2.9" + request "^2.85.0" + semaphore "^1.0.3" + ws "^5.1.1" + xhr "^2.2.0" + xtend "^4.0.1" + web3-providers-http@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.0.0-beta.35.tgz#92059d9d6de6e9f82f4fae30b743efd841afc1e1" @@ -17425,7 +17532,7 @@ web3@^0.16.0: utf8 "^2.1.1" xmlhttprequest "*" -web3@^0.18.4: +web3@^0.18.2, web3@^0.18.4: version "0.18.4" resolved "https://registry.yarnpkg.com/web3/-/web3-0.18.4.tgz#81ec1784145491f2eaa8955b31c06049e07c5e7d" integrity sha1-gewXhBRUkfLqqJVbMcBgSeB8Xn0= From e4d2e3b35d9397da91f7d6df4c315e95e865f462 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADnez?= Date: Tue, 30 Apr 2019 13:56:02 +0200 Subject: [PATCH 06/12] Fix constant variable value --- src/logic/wallets/ethAddresses.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/logic/wallets/ethAddresses.js b/src/logic/wallets/ethAddresses.js index b116e2b9..fa527d07 100644 --- a/src/logic/wallets/ethAddresses.js +++ b/src/logic/wallets/ethAddresses.js @@ -1,5 +1,5 @@ // @flow -export const ZERO_ADDRESS = ' 0x0000000000000000000000000000000000000000' +export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' export const sameAddress = (firstAddress: string, secondAddress: string): boolean => { if (!firstAddress) { From 2e2a7d906ccb7e14161f013357bbd3de5d3a2132 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADnez?= Date: Tue, 30 Apr 2019 14:18:03 +0200 Subject: [PATCH 07/12] Unify and refactor gnosis safe instance functions --- src/logic/contracts/safeContracts.js | 2 +- src/logic/safe/safeBlockchainOperations.js | 10 +++++----- src/logic/safe/safeFrontendOperations.js | 8 -------- src/logic/safe/safeTxHistory.js | 4 ++-- src/routes/open/container/Open.jsx | 12 ++++-------- src/routes/safe/components/AddOwner/index.jsx | 5 +++-- src/routes/safe/components/RemoveOwner/index.jsx | 5 +++-- src/routes/safe/components/SendToken/index.jsx | 5 +++-- src/routes/safe/components/Threshold/index.jsx | 5 +++-- src/routes/safe/store/actions/fetchSafe.js | 8 +++----- src/routes/safe/test/Safe.threshold.test.js | 10 +++------- src/test/safe.redux.transactions.test.js | 5 +++-- src/test/utils/ethereumErrors.js | 2 +- 13 files changed, 34 insertions(+), 47 deletions(-) diff --git a/src/logic/contracts/safeContracts.js b/src/logic/contracts/safeContracts.js index 9645a849..f7997e5c 100644 --- a/src/logic/contracts/safeContracts.js +++ b/src/logic/contracts/safeContracts.js @@ -75,7 +75,7 @@ export const deploySafeContract = async (safeAccounts: string[], numConfirmation export const getGnosisSafeInstanceAt = async (safeAddress: string) => { const web3 = getWeb3() - const GnosisSafe = await getGnosisSafeContract(web3) + const GnosisSafe = getGnosisSafeContract(web3) const gnosisSafe = await GnosisSafe.at(safeAddress) return gnosisSafe diff --git a/src/logic/safe/safeBlockchainOperations.js b/src/logic/safe/safeBlockchainOperations.js index a52de339..7fb87683 100644 --- a/src/logic/safe/safeBlockchainOperations.js +++ b/src/logic/safe/safeBlockchainOperations.js @@ -2,7 +2,7 @@ import { List } from 'immutable' import { calculateGasOf, checkReceiptStatus, calculateGasPrice } from '~/logic/wallets/ethTransactions' import { type Operation, submitOperation } from '~/logic/safe/safeTxHistory' -import { getSafeEthereumInstance } from '~/logic/safe/safeFrontendOperations' +import { getGnosisSafeInstanceAt } from '~/logic/contracts/safeContracts' import { buildSignaturesFrom } from '~/logic/safe/safeTxSigner' import { generateMetamaskSignature, generateTxGasEstimateFrom, estimateDataGas } from '~/logic/safe/safeTxSignerEIP712' import { storeSignature, getSignaturesFrom } from '~/utils/storage/signatures' @@ -21,7 +21,7 @@ export const approveTransaction = async ( if (signaturesViaMetamask()) { // return executeTransaction(safeAddress, to, valueInWei, data, operation, nonce, sender) - const safe = await getSafeEthereumInstance(safeAddress) + const safe = await getGnosisSafeInstanceAt(safeAddress) const txGasEstimate = await generateTxGasEstimateFrom(safe, safeAddress, data, to, valueInWei, operation) const signature = await generateMetamaskSignature( safe, @@ -39,7 +39,7 @@ export const approveTransaction = async ( return undefined } - const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const gnosisSafe = await getGnosisSafeInstanceAt(safeAddress) const contractTxHash = await gnosisSafe.getTransactionHash(to, valueInWei, data, operation, 0, 0, 0, 0, 0, nonce) const approveData = gnosisSafe.contract.methods.approveHash(contractTxHash).encodeABI() @@ -67,7 +67,7 @@ export const executeTransaction = async ( const gasPrice = await calculateGasPrice() if (signaturesViaMetamask()) { - const safe = await getSafeEthereumInstance(safeAddress) + const safe = await getGnosisSafeInstanceAt(safeAddress) const txGasEstimate = await generateTxGasEstimateFrom(safe, safeAddress, data, to, valueInWei, operation) const signature = await generateMetamaskSignature( safe, @@ -120,7 +120,7 @@ export const executeTransaction = async ( return txHash } - const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const gnosisSafe = await getGnosisSafeInstanceAt(safeAddress) const signatures = buildSignaturesFrom(ownersWhoHasSigned, sender) const txExecutionData = gnosisSafe.contract.methods .execTransaction(to, valueInWei, data, operation, 0, 0, 0, 0, 0, signatures) diff --git a/src/logic/safe/safeFrontendOperations.js b/src/logic/safe/safeFrontendOperations.js index 8a3cfc57..699b94d2 100644 --- a/src/logic/safe/safeFrontendOperations.js +++ b/src/logic/safe/safeFrontendOperations.js @@ -5,7 +5,6 @@ import { executeTransaction, approveTransaction } from '~/logic/safe/safeBlockch import { EMPTY_DATA } from '~/logic/wallets/ethTransactions' import { getWeb3 } from '~/logic/wallets/getWeb3' import { type Safe } from '~/routes/safe/store/models/safe' -import { getGnosisSafeContract } from '~/logic/contracts/safeContracts' import { storeSubject } from '~/utils/storage/transactions' export const TX_NAME_PARAM = 'txName' @@ -23,13 +22,6 @@ const hasOneOwner = (safe: Safe) => { return owners.count() === 1 } -export const getSafeEthereumInstance = async (safeAddress: string) => { - const web3 = getWeb3() - const GnosisSafe = await getGnosisSafeContract(web3) - const safeInstance = await GnosisSafe.at(safeAddress) - return safeInstance -} - export const createTransaction = async ( safe: Safe, name: string, diff --git a/src/logic/safe/safeTxHistory.js b/src/logic/safe/safeTxHistory.js index 631ba995..7dd6ae84 100644 --- a/src/logic/safe/safeTxHistory.js +++ b/src/logic/safe/safeTxHistory.js @@ -1,7 +1,7 @@ // @flow import { getWeb3 } from '~/logic/wallets/getWeb3' import { getTxServiceUriFrom, getTxServiceHost } from '~/config' -import { getSafeEthereumInstance } from '~/logic/safe/safeFrontendOperations' +import { getGnosisSafeInstanceAt } from '~/logic/contracts/safeContracts' export type TxServiceType = 'confirmation' | 'execution' | 'initialised' export type Operation = 0 | 1 | 2 @@ -17,7 +17,7 @@ const calculateBodyFrom = async ( sender: string, type: TxServiceType, ) => { - const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const gnosisSafe = await getGnosisSafeInstanceAt(safeAddress) const contractTransactionHash = await gnosisSafe.getTransactionHash( to, valueInWei, diff --git a/src/routes/open/container/Open.jsx b/src/routes/open/container/Open.jsx index 4a66d5be..7d65b08f 100644 --- a/src/routes/open/container/Open.jsx +++ b/src/routes/open/container/Open.jsx @@ -5,8 +5,7 @@ import Page from '~/components/layout/Page' import { getAccountsFrom, getThresholdFrom, getNamesFrom, getSafeNameFrom, } from '~/routes/open/utils/safeDataExtractor' -import { getWeb3 } from '~/logic/wallets/getWeb3' -import { getGnosisSafeContract, deploySafeContract, initContracts } from '~/logic/contracts/safeContracts' +import { getGnosisSafeInstanceAt, deploySafeContract, initContracts } from '~/logic/contracts/safeContracts' import { checkReceiptStatus } from '~/logic/wallets/ethTransactions' import { history } from '~/store' import { OPENING_ADDRESS, stillInOpeningView, SAFELIST_ADDRESS } from '~/routes/routes' @@ -30,15 +29,12 @@ export const createSafe = async (values: Object, userAccount: string, addSafe: A const name = getSafeNameFrom(values) const owners = getNamesFrom(values) - const web3 = getWeb3() - const GnosisSafe = getGnosisSafeContract(web3) - await initContracts() const safe = await deploySafeContract(accounts, numConfirmations, userAccount) - checkReceiptStatus(safe.tx) + await checkReceiptStatus(safe.tx) - const param = safe.logs[0].args.proxy - const safeContract = await GnosisSafe.at(param) + const safeAddress = safe.logs[0].args.proxy + const safeContract = await getGnosisSafeInstanceAt(safeAddress) addSafe(name, safeContract.address, numConfirmations, owners, accounts) diff --git a/src/routes/safe/components/AddOwner/index.jsx b/src/routes/safe/components/AddOwner/index.jsx index 533039a2..920f056e 100644 --- a/src/routes/safe/components/AddOwner/index.jsx +++ b/src/routes/safe/components/AddOwner/index.jsx @@ -6,7 +6,8 @@ import { connect } from 'react-redux' import { type Safe } from '~/routes/safe/store/models/safe' import { type Owner, makeOwner } from '~/routes/safe/store/models/owner' import { setOwners } from '~/logic/safe/utils' -import { getSafeEthereumInstance, createTransaction } from '~/logic/safe/safeFrontendOperations' +import { createTransaction } from '~/logic/safe/safeFrontendOperations' +import { getGnosisSafeInstanceAt } from '~/logic/contracts/safeContracts' import AddOwnerForm, { NAME_PARAM, OWNER_ADDRESS_PARAM, INCREASE_PARAM } from './AddOwnerForm' import Review from './Review' import selector, { type SelectorProps } from './selector' @@ -36,7 +37,7 @@ const getOwnerAddressesFrom = (owners: List) => { export const addOwner = async (values: Object, safe: Safe, threshold: number, executor: string) => { const safeAddress = safe.get('address') - const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const gnosisSafe = await getGnosisSafeInstanceAt(safeAddress) const nonce = await gnosisSafe.nonce() const newThreshold = values[INCREASE_PARAM] ? threshold + 1 : threshold diff --git a/src/routes/safe/components/RemoveOwner/index.jsx b/src/routes/safe/components/RemoveOwner/index.jsx index 001860ec..d82592ab 100644 --- a/src/routes/safe/components/RemoveOwner/index.jsx +++ b/src/routes/safe/components/RemoveOwner/index.jsx @@ -3,7 +3,8 @@ import * as React from 'react' import Stepper from '~/components/Stepper' import { connect } from 'react-redux' import { type Safe } from '~/routes/safe/store/models/safe' -import { getSafeEthereumInstance, createTransaction } from '~/logic/safe/safeFrontendOperations' +import { createTransaction } from '~/logic/safe/safeFrontendOperations' +import { getGnosisSafeInstanceAt } from '~/logic/contracts/safeContracts' import RemoveOwnerForm, { DECREASE_PARAM } from './RemoveOwnerForm' import Review from './Review' import selector, { type SelectorProps } from './selector' @@ -42,7 +43,7 @@ export const removeOwner = async ( executor: string, ) => { const safeAddress = safe.get('address') - const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const gnosisSafe = await getGnosisSafeInstanceAt(safeAddress) const nonce = await gnosisSafe.nonce() const newThreshold = values[DECREASE_PARAM] ? threshold - 1 : threshold const storedOwners = await gnosisSafe.getOwners() diff --git a/src/routes/safe/components/SendToken/index.jsx b/src/routes/safe/components/SendToken/index.jsx index 06adea87..84899436 100644 --- a/src/routes/safe/components/SendToken/index.jsx +++ b/src/routes/safe/components/SendToken/index.jsx @@ -10,7 +10,8 @@ import { type Token } from '~/logic/tokens/store/model/token' import { isEther } from '~/logic/tokens/utils/tokenHelpers' import { EMPTY_DATA } from '~/logic/wallets/ethTransactions' import { toNative } from '~/logic/wallets/tokens' -import { createTransaction, getSafeEthereumInstance } from '~/logic/safe/safeFrontendOperations' +import { createTransaction } from '~/logic/safe/safeFrontendOperations' +import { getGnosisSafeInstanceAt } from '~/logic/contracts/safeContracts' import actions, { type Actions } from './actions' import selector, { type SelectorProps } from './selector' import SendTokenForm, { TKN_DESTINATION_PARAM, TKN_VALUE_PARAM } from './SendTokenForm' @@ -40,7 +41,7 @@ const getTransferData = async (tokenAddress: string, to: string, amount: BigNumb const processTokenTransfer = async (safe: Safe, token: Token, to: string, amount: string, userAddress: string) => { const safeAddress = safe.get('address') - const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const gnosisSafe = await getGnosisSafeInstanceAt(safeAddress) const nonce = await gnosisSafe.nonce() const symbol = token.get('symbol') const name = `Send ${amount} ${symbol} to ${to}` diff --git a/src/routes/safe/components/Threshold/index.jsx b/src/routes/safe/components/Threshold/index.jsx index 3b5a18e2..1f698aa2 100644 --- a/src/routes/safe/components/Threshold/index.jsx +++ b/src/routes/safe/components/Threshold/index.jsx @@ -2,7 +2,8 @@ import * as React from 'react' import Stepper from '~/components/Stepper' import { connect } from 'react-redux' -import { getSafeEthereumInstance, createTransaction } from '~/logic/safe/safeFrontendOperations' +import { createTransaction } from '~/logic/safe/safeFrontendOperations' +import { getGnosisSafeInstanceAt } from '~/logic/contracts/safeContracts' import { type Safe } from '~/routes/safe/store/models/safe' import ThresholdForm, { THRESHOLD_PARAM } from './ThresholdForm' import selector, { type SelectorProps } from './selector' @@ -35,7 +36,7 @@ class Threshold extends React.PureComponent { const { safe, userAddress, fetchTransactions } = this.props // , fetchThreshold } = this.props const newThreshold = values[THRESHOLD_PARAM] const safeAddress = safe.get('address') - const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const gnosisSafe = await getGnosisSafeInstanceAt(safeAddress) const nonce = await gnosisSafe.nonce() const data = gnosisSafe.contract.changeThreshold(newThreshold).encodeABI() await createTransaction(safe, `Change Safe's threshold [${nonce}]`, safeAddress, '0', nonce, userAddress, data) diff --git a/src/routes/safe/store/actions/fetchSafe.js b/src/routes/safe/store/actions/fetchSafe.js index ffb800a0..83fd2774 100644 --- a/src/routes/safe/store/actions/fetchSafe.js +++ b/src/routes/safe/store/actions/fetchSafe.js @@ -6,8 +6,8 @@ import { makeOwner } from '~/routes/safe/store/models/owner' import type { SafeProps } from '~/routes/safe/store/models/safe' import { addSafe } from '~/routes/safe/store/actions/addSafe' import { getOwners, getSafeName } from '~/logic/safe/utils' -import { getGnosisSafeContract } from '~/logic/contracts/safeContracts' -import { getWeb3, getBalanceInEtherOf } from '~/logic/wallets/getWeb3' +import { getGnosisSafeInstanceAt } from '~/logic/contracts/safeContracts' +import { getBalanceInEtherOf } from '~/logic/wallets/getWeb3' import updateSafe from '~/routes/safe/store/actions/updateSafe' const buildOwnersFrom = ( @@ -19,9 +19,7 @@ const buildOwnersFrom = ( }) export const buildSafe = async (safeAddress: string, safeName: string) => { - const web3 = getWeb3() - const SafeContract = await getGnosisSafeContract(web3) - const gnosisSafe = await SafeContract.at(safeAddress) + const gnosisSafe = await getGnosisSafeInstanceAt(safeAddress) const ethBalance = await getBalanceInEtherOf(safeAddress) const threshold = Number(await gnosisSafe.getThreshold()) diff --git a/src/routes/safe/test/Safe.threshold.test.js b/src/routes/safe/test/Safe.threshold.test.js index 63d8dbd9..33632e2c 100644 --- a/src/routes/safe/test/Safe.threshold.test.js +++ b/src/routes/safe/test/Safe.threshold.test.js @@ -15,7 +15,7 @@ import { import { getTransactionFromReduxStore } from '~/routes/safe/test/testMultisig' import { buildMathPropsFrom } from '~/test/utils/buildReactRouterProps' import { createTransaction } from '~/wallets/createTransactions' -import { getGnosisSafeContract } from '~/wallets/safeContracts' +import { getGnosisSafeInstanceAt } from '~/wallets/safeContracts' import fetchTransactions from '~/routes/safe/store/actions/fetchTransactions' */ describe('React DOM TESTS > Change threshold', () => { @@ -32,9 +32,7 @@ describe('React DOM TESTS > Change threshold', () => { const match: Match = buildMathPropsFrom(address) const safe = safeSelector(store.getState(), { match }) if (!safe) throw new Error() - const web3 = getWeb3() - const GnosisSafe = await getGnosisSafeContract(web3) - const gnosisSafe = GnosisSafe.at(address) + const gnosisSafe = await getGnosisSafeInstanceAt(safeAddress) // WHEN const nonce = Date.now() @@ -79,9 +77,7 @@ describe('React DOM TESTS > Change threshold', () => { const match: Match = buildMathPropsFrom(address) const safe = safeSelector(store.getState(), { match }) if (!safe) throw new Error() - const web3 = getWeb3() - const GnosisSafe = await getGnosisSafeContract(web3) - const gnosisSafe = GnosisSafe.at(address) + const gnosisSafe = await getGnosisSafeInstanceAt(safeAddress) // WHEN const nonce = Date.now() diff --git a/src/test/safe.redux.transactions.test.js b/src/test/safe.redux.transactions.test.js index 1809e816..272b1178 100644 --- a/src/test/safe.redux.transactions.test.js +++ b/src/test/safe.redux.transactions.test.js @@ -1,6 +1,7 @@ // @flow import { List } from 'immutable' -import { getSafeEthereumInstance, createTransaction } from '~/logic/safe/safeFrontendOperations' +import { createTransaction } from '~/logic/safe/safeFrontendOperations' +import { getGnosisSafeInstanceAt } from '~/logic/contracts/safeContracts' import { type Safe } from '~/routes/safe/store/models/safe' import { makeOwner } from '~/routes/safe/store/models/owner' import fetchTransactions from '~/routes/safe/store/actions/fetchTransactions' @@ -29,7 +30,7 @@ describe('Transactions Suite', () => { it('retrieves tx info from service having subject available', async () => { let safe: Safe = getSafeFrom(store.getState(), safeAddress) - const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const gnosisSafe = await getGnosisSafeInstanceAt(safeAddress) const firstTxData = gnosisSafe.contract.methods.addOwnerWithThreshold(accounts[1], 2).encodeABI() const executor = accounts[0] const nonce = await gnosisSafe.nonce() diff --git a/src/test/utils/ethereumErrors.js b/src/test/utils/ethereumErrors.js index e1d10f57..f4f0cd43 100644 --- a/src/test/utils/ethereumErrors.js +++ b/src/test/utils/ethereumErrors.js @@ -6,7 +6,7 @@ import abi from 'ethereumjs-abi' console.log(`to[${to}] \n\n valieInWei[${valueInWei}] \n\n data[${data}] \n\n operation[${operation}] \n\n sigs[${sigs}]`) -const gnosisSafe = await getSafeEthereumInstance(address) +const gnosisSafe = await getGnosisSafeInstanceAt(address) await printOutApprove("Remove owner 3", address, await gnosisSafe.getOwners(), tx.get('data'), tx.get('nonce')) const txData = await gnosisSafe.contract.execTransactionIfApproved.getData(address, 0, tx.get('data'), 0, tx.get('nonce')) From 5901b6b7fc96955e412a7a51c01ceb92347aabdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADnez?= Date: Tue, 30 Apr 2019 16:09:40 +0200 Subject: [PATCH 08/12] Fix build issue with truffle --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index f12c9aee..98ed1c4a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,6 +23,8 @@ before_install: # Needed to deploy pull request and releases - sudo apt-get -y install python-pip python-dev - pip install awscli --upgrade --user + # Install truffle + - sudo npm install -g truffle before_script: # Used in the tests of the project - export NODE_ENV=testing From 77cf1fc544fb16b9d05e4878fb705c952e021b11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADnez?= Date: Tue, 30 Apr 2019 16:10:54 +0200 Subject: [PATCH 09/12] Update readme file --- readme.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/readme.md b/readme.md index 3cc96031..0895e40e 100644 --- a/readme.md +++ b/readme.md @@ -14,7 +14,6 @@ What things you need to install the software and how to install them yarn add truffle // recommended usage of -g flag yarn add ganache-cli // recommended usage of -g flag yarn add flow-type // recommended usage of -g flag -git clone https://github.com/gnosis/safe-contracts.git ``` We use [yarn](https://yarnpkg.com) in our infrastacture, so we decided to go with yarn in the README @@ -30,7 +29,6 @@ ganache-cli -b 3 Start the project in the other one ``` -cd safe-contracts && truffle compile && truffle migrate && cd .. yarn install yarn start ``` From 1385e108c8621dcc90b725963f4521b255902041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADnez?= Date: Tue, 30 Apr 2019 16:20:36 +0200 Subject: [PATCH 10/12] Fix build issue with truffle --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 98ed1c4a..11b7cc43 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,7 +24,7 @@ before_install: - sudo apt-get -y install python-pip python-dev - pip install awscli --upgrade --user # Install truffle - - sudo npm install -g truffle + - npm install -g truffle before_script: # Used in the tests of the project - export NODE_ENV=testing From 2d9e938d465193b7ed54443c5d60c748d1c1a5ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADnez?= Date: Tue, 30 Apr 2019 16:48:24 +0200 Subject: [PATCH 11/12] Fix build issue with truffle --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 11b7cc43..5db25746 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,7 +24,7 @@ before_install: - sudo apt-get -y install python-pip python-dev - pip install awscli --upgrade --user # Install truffle - - npm install -g truffle + - yarn global add truffle before_script: # Used in the tests of the project - export NODE_ENV=testing From 98293e56297857f65e4fee4cb8a7863bec65833b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADnez?= Date: Tue, 30 Apr 2019 17:20:37 +0200 Subject: [PATCH 12/12] Add xenial dist to travis.yml --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 5db25746..f6c5638d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ if: (branch = development) OR (branch = master) OR (type = pull_request) OR (tag IS present) sudo: required +dist: xenial services: - docker language: node_js