2018-05-04 16:04:04 +02:00
{
"contractName" : "DailyLimitExtension" ,
"abi" : [
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "TRANSFER_FUNCTION_IDENTIFIER" ,
"outputs" : [
{
"name" : "" ,
"type" : "bytes4"
}
] ,
"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" : "gnosisSafe" ,
"outputs" : [
{
"name" : "" ,
"type" : "address"
}
] ,
"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"
} ,
{
"inputs" : [
{
"name" : "tokens" ,
"type" : "address[]"
} ,
{
"name" : "_dailyLimits" ,
"type" : "uint256[]"
}
] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "constructor"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "tokens" ,
"type" : "address[]"
} ,
{
"name" : "_dailyLimits" ,
"type" : "uint256[]"
}
] ,
"name" : "setup" ,
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "_masterCopy" ,
"type" : "address"
}
] ,
"name" : "changeMasterCopy" ,
"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" : "sender" ,
"type" : "address"
} ,
{
"name" : "to" ,
"type" : "address"
} ,
{
"name" : "value" ,
"type" : "uint256"
} ,
{
"name" : "data" ,
"type" : "bytes"
} ,
{
"name" : "operation" ,
"type" : "uint8"
}
] ,
"name" : "isExecutable" ,
"outputs" : [
{
"name" : "" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "today" ,
"outputs" : [
{
"name" : "" ,
"type" : "uint256"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
}
] ,
"bytecode" : " 0 x 6060604052341561000 f 57600080 f d 5 b 604051610 d b f 380380610 d b f 833981016040528080518201919060200180518201919050506100518282610058640100000000026104e2176401000000009004565 b 5050610176565 b 600080600160009054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 161415156100 a 0 57600080 f d 5 b 33600160006101000 a 81548173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 0 21916908373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 160217905550600090505 b 82518110156101715781818151811015156100 f d 57 f e 5 b 9060200190602002015160026000858481518110151561011957 f e 5 b 9060200190602002015173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1681526020019081526020016000206000018190555080806001019150506100e6565 b 505050565 b 610 c 3 a 806101856000396000 f 3006060604052600436106100 a 4576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 16806328814 f 0 3146100 a 9578063430e47 f 8146101435780637 d e 7 e d e f 146101 a a 57806381 c 5e03 b 146101e3578063 a 3 f 4 d f 7e14610225578063 a 84173 a e 146102 b 3578063 b 74e452 b 14610308578063 c d e 0 9 c a 914610331578063 d 7 b f f c 92146103 f 9578063 f f a 1 a d 7414610454575 b 600080 f d 5 b 34156100 b 457600080 f d 5 b 610141600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919050506104e2565 b 0 0 5 b 341561014e57600080 f d 5 b 610156610600565 b 60405180827 b f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 19167 b f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1916815260200191505060405180910390 f 35 b 34156101 b 557600080 f d 5 b 6101e1600480803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019091905050610624565 b 0 0 5 b 34156101 e e 57600080 f d 5 b 610223600480803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190919080359060200190919050506106e9565 b 0 0 5 b 341561023057600080 f d 5 b 610238610790565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 8381101561027857808201518184015260208101905061025 d 565 b 50505050905090810190601 f 1680156102 a 55780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 34156102 b e 57600080 f d 5 b 6102 c 66107 c 9565 b 604051808273 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200191505060405180910390 f 35 b 341561031357600080 f d 5 b 61031 b 6107 e f 565 b 6040518082815260200191505060405180910390 f 35 b 341561033 c 57600080 f d 5 b 6103 d f 600480803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909190803590602001909190803590602001908201803590602001908080601 f 0 160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560 f f 16906020019091905050610807565 b 604051808215151515815260200191505060405180910390 f 35 b 341561040457600080 f d 5 b 610430600480803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019091905050610 a f c 565 b 60405180848152602001838152602001828152602001935050505060405180910390 f 35 b 341561045 f 57600080 f d 5 b 610467610 b 26565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 838110156104 a 757808201518184015260208101905061048 c 565 b 50505050905090810190601 f 1680156104 d 45780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 600080600160009054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1614151561052 a 57600080 f d 5 b 33600160006101000 a 81548173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 0 21916908373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 160217905550600090505 b 82518110156105 f b 57818181518110151561058757 f e 5 b 906020019060200201516002600085848151811015156105 a 357 f e 5 b 9060200190602002015173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 168152602001908152602001600020600001819055508080600101915050610570565 b 505050565 b 7 f a 9059 c b b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81565 b 600160009054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 163373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f
"deployedBytecode" : " 0 x 6060604052600436106100 a 4576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 16806328814 f 0 3146100 a 9578063430e47 f 8146101435780637 d e 7 e d e f 146101 a a 57806381 c 5e03 b 146101e3578063 a 3 f 4 d f 7e14610225578063 a 84173 a e 146102 b 3578063 b 74e452 b 14610308578063 c d e 0 9 c a 914610331578063 d 7 b f f c 92146103 f 9578063 f f a 1 a d 7414610454575 b 600080 f d 5 b 34156100 b 457600080 f d 5 b 610141600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919050506104e2565 b 0 0 5 b 341561014e57600080 f d 5 b 610156610600565 b 60405180827 b f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 19167 b f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1916815260200191505060405180910390 f 35 b 34156101 b 557600080 f d 5 b 6101e1600480803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019091905050610624565 b 0 0 5 b 34156101 e e 57600080 f d 5 b 610223600480803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190919080359060200190919050506106e9565 b 0 0 5 b 341561023057600080 f d 5 b 610238610790565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 8381101561027857808201518184015260208101905061025 d 565 b 50505050905090810190601 f 1680156102 a 55780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 34156102 b e 57600080 f d 5 b 6102 c 66107 c 9565 b 604051808273 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200191505060405180910390 f 35 b 341561031357600080 f d 5 b 61031 b 6107 e f 565 b 6040518082815260200191505060405180910390 f 35 b 341561033 c 57600080 f d 5 b 6103 d f 600480803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909190803590602001909190803590602001908201803590602001908080601 f 0 160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560 f f 16906020019091905050610807565 b 604051808215151515815260200191505060405180910390 f 35 b 341561040457600080 f d 5 b 610430600480803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019091905050610 a f c 565 b 60405180848152602001838152602001828152602001935050505060405180910390 f 35 b 341561045 f 57600080 f d 5 b 610467610 b 26565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 838110156104 a 757808201518184015260208101905061048 c 565 b 50505050905090810190601 f 1680156104 d 45780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 600080600160009054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1614151561052 a 57600080 f d 5 b 33600160006101000 a 81548173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 0 21916908373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 160217905550600090505 b 82518110156105 f b 57818181518110151561058757 f e 5 b 906020019060200201516002600085848151811015156105 a 357 f e 5 b 9060200190602002015173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 168152602001908152602001600020600001819055508080600101915050610570565 b 505050565 b 7 f a 9059 c b b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81565 b 600160009054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 163373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1614151561068057600080 f d 5 b 60008173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16141515156106 a 657600080 f d 5 b 806000806101000 a 81548173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 0 21916908373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16021790555050565 b 600160009054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 163373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1614151561074557600080 f d 5 b 80600260008473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 168152602001908152602001600020600001819055505050565 b 6040805190810160405280601581526020017 f 4461696 c 79204 c 696 d 697420457874656e73696 f 6e000000000000000000000081525081565 b 600160009054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1681565 b 600062
"sourceMap" : "247:5028:5:-;;;1209:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1309:27;1315:6;1323:12;1309:5;;;;;:27;;;:::i;:::-;1209:134;;247:5028;;1585:424;1900:9;1838:1;1823:10;;;;;;;;;;;1815:24;;;1807:33;;;;;;;;1874:10;1850;;:35;;;;;;;;;;;;;;;;;;1912:1;1900:13;;1895:107;1919:6;:13;1915:1;:17;1895:107;;;1987:12;2000:1;1987:15;;;;;;;;;;;;;;;;;;1951:11;:22;1963:6;1970:1;1963:9;;;;;;;;;;;;;;;;;;1951:22;;;;;;;;;;;;;;;:33;;:51;;;;1934:3;;;;;;;1895:107;;;1585:424;;;:::o;247:5028::-;;;;;;;" ,
"deployedSourceMap" : "247:5028:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1585:424;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;401:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2155:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;2569:162;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;296:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;511:28:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5157:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3233:1338;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;617:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;355:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1585:424:5;1900:9;1838:1;1823:10;;;;;;;;;;;1815:24;;;1807:33;;;;;;;;1874:10;1850;;:35;;;;;;;;;;;;;;;;;;1912:1;1900:13;;1895:107;1919:6;:13;1915:1;:17;1895:107;;;1987:12;2000:1;1987:15;;;;;;;;;;;;;;;;;;1951:11;:22;1963:6;1970:1;1963:9;;;;;;;;;;;;;;;;;;1951:22;;;;;;;;;;;;;;;:33;;:51;;;;1934:3;;;;;;;1895:107;;;1585:424;;;:::o;401:67::-;;;:::o;2155:186::-;852:10;;;;;;;;;;;830:33;;:10;:33;;;822:42;;;;;;;;2298:1;2282:11;2274:25;;;;2266:34;;;;;;;;2323:11;2310:10;;:24;;;;;;;;;;;;;;;;;;2155:186;:::o;2569:162::-;852:10;;;;;;;;;;;830:33;;:10;:33;;;822:42;;;;;;;;2714:10;2682:11;:18;2694:5;2682:18;;;;;;;;;;;;;;;:29;;:42;;;;2569:162;;:::o;296:53::-;;;;;;;;;;;;;;;;;;;;:::o;511:28::-;;;;;;;;;;;;;:::o;5157:116::-;5219:4;5259:6;5253:3;:12;;;;;;;;5246:3;:20;5239:27;;5157:116;:::o;3233:1338::-;3397:4;3744:13;3767:16;3793:14;3980:25;852:10;;;;;;;;;;;830:33;;:10;:33;;;822:42;;;;;;;;3502:10;;;;;;;;;;;:18;;;3521:6;3502:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3494:35;;;;;;;;3560:25;3547:38;;;;;;;;:9;:38;;;;;;;;;3539:47;;;;;;;;3686:1;3671:4;:11;:16;:29;;;;;3699:1;3691:5;:9;3671:29;:62;;;;3718:1;3704:4;:11;:15;:29;;;;;3732:1;3723:5;:10;3704:29;3671:62;3663:71;;;;;;;;3836:1;3821:4;:11;:16;3817:470;;;3861:1;3853:9;;3887:2;3876:13;;3912:5;3903:14;;3817:470;;;3964:2;3956:10;;4084:4;4078;4074:3;4068:5;4046:44;;4135:4;4129;4125:3;4119:5;4107:34;;4184:4;4178;4174:3;4168:5;4158:32;;4247:28;4225:50;;;:18;:50;;;;4217:59;;;;;;;;3817:470;4316:1;4304:8;:13;;;;4296:22;;;;;;;;4345:1;4336:6;:10;4328:19;;;;;;;;4425:27;4438:5;4445:6;4425:12;:27::i;:::-;4421:122;;;4501:6;4468:11;:18;4480:5;4468:18;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;4528:4;4521:11;;;;4421:122;4559:5;4552:12;;874:1;3233:1338;;;;;;;;;;;:::o;617:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;355:40::-;;;;;;;;;;;;;;;;;;;;:::o;4577:488::-;4664:4;4684:29;4716:11;:18;4728:5;4716:18;;;;;;;;;;;;;;;4684:50;;4758:10;:18;;;4748:7;:5;:7::i;:::-;:28;4744:126;;;4813:7;:5;:7::i;:::-;4792:10;:18;;:28;;;;4858:1;4834:10;:21;;:25;;;;4744:126;4920:10;:21;;;4910:6;4886:10;:21;;;:30;:55;;:125;;;;;4990:10;:21;;;4981:6;4957:10;:21;;;:30;:54;4886:125;4879:157;;;5032:4;5025:11;;;;4879:157;5053:5;5046:12;;4577:488;;;;;;:::o" ,
"source" : "pragma solidity 0.4.19;\nimport \"../Extension.sol\";\nimport \"../GnosisSafe.sol\";\n\n\n/// @title Daily Limit Extension - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n/// @author Stefan George - <stefan@gnosis.pm>\ncontract DailyLimitExtension is Extension {\n\n string public constant NAME = \"Daily Limit Extension\";\n string public constant VERSION = \"0.0.1\";\n bytes4 public constant TRANSFER_FUNCTION_IDENTIFIER = hex\"a9059cbb\" ; \ n \ n D a i l y L i m i t E x t e n s i o n m a s t e r C o p y ; \ n G n o s i s S a f e p u b l i c g n o s i s S a f e ; \ 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 modifier onlyGnosisSafe() {\n require(msg.sender == address(gnosisSafe));\n _;\n }\n\n /// @dev Constructor function triggers setup function.\n /// @param tokens List of token addresses. Ether is represented with address 0x0.\n /// @param _dailyLimits List of daily limits in smallest unit (e.g. Wei for Ether). \n /// First entry of array corresponds to first entry in token address array.\n function DailyLimitExtension(address[] tokens, uint256[] _dailyLimits)\n public\n {\n setup(tokens, _dailyLimits);\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 // gnosisSafe can only be 0 at initalization of contract.\n // Check ensures that setup function can only be called once.\n require(address(gnosisSafe) == 0);\n gnosisSafe = GnosisSafe(msg.sender);\n for (uint256 i = 0; i < tokens.length; i++)\n dailyLimits[tokens[i]].dailyLimit = _dailyLimits[i];\n }\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(DailyLimitExtension _masterCopy)\n public\n onlyGnosisSafe\n {\n require(address(_masterCopy) != 0);\n masterCopy = _masterCopy;\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 onlyGnosisSafe\n {\n dailyLimits[token].dailyLimit = dailyLimit;\n }\n\n /// @dev Returns if Safe transaction is a valid daily limit transaction.\n /// @param sender Safe owner sending Safe transaction.\n /// @param to Receiver address in case of Ether transfer, token address in case of a token transfer.\n /// @param value Ether value in case of an Ether transfer.\n /// @param data Encoded token transfer. Empty in case of Ether transfer.\n /// @param operation Only Call operations are allowed.\n /// @return Returns if transaction can be executed.\n function isExecutable(address sender, address to, uint256 value, bytes data, GnosisSafe.Operation operation)\n public\n onlyGnosisSafe\n returns (bool)\n {\n // Only Safe owners are allowed to execute daily limit transactions.\n require(gnosisSafe.isOwner(sender));\n require(operation == GnosisSafe.Operation.Call);\n // Data has to encode a token transfer or has to be empty.\n require(data.length == 0 && value > 0 || data.length > 0 && value == 0);\n address token;\n address receiver;\n uint256 amount;\n if (data.length == 0) {\n token = 0;\n receiver = to;\n amount = value;\n }\n else {\n token = to;\n
"sourcePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/extensions/DailyLimitExtension.sol" ,
"ast" : {
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/extensions/DailyLimitExtension.sol" ,
"exportedSymbols" : {
"DailyLimitExtension" : [
1418
]
} ,
"id" : 1419 ,
"nodeType" : "SourceUnit" ,
"nodes" : [
{
"id" : 1083 ,
"literals" : [
"solidity" ,
"0.4" ,
".19"
] ,
"nodeType" : "PragmaDirective" ,
"src" : "0:23:5"
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Extension.sol" ,
"file" : "../Extension.sol" ,
"id" : 1084 ,
"nodeType" : "ImportDirective" ,
"scope" : 1419 ,
"sourceUnit" : 19 ,
"src" : "24:26:5" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol" ,
"file" : "../GnosisSafe.sol" ,
"id" : 1085 ,
"nodeType" : "ImportDirective" ,
"scope" : 1419 ,
"sourceUnit" : 964 ,
"src" : "51:27:5" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : [ ] ,
"baseName" : {
"contractScope" : null ,
"id" : 1086 ,
"name" : "Extension" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 18 ,
"src" : "279:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Extension_$18" ,
"typeString" : "contract Extension"
}
} ,
"id" : 1087 ,
"nodeType" : "InheritanceSpecifier" ,
"src" : "279:9:5"
}
] ,
"contractDependencies" : [
18
] ,
"contractKind" : "contract" ,
"documentation" : "@title Daily Limit Extension - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n @author Stefan George - <stefan@gnosis.pm>" ,
"fullyImplemented" : true ,
"id" : 1418 ,
"linearizedBaseContracts" : [
1418 ,
18
] ,
"name" : "DailyLimitExtension" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"constant" : true ,
"id" : 1090 ,
"name" : "NAME" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1418 ,
"src" : "296:53:5" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string memory"
} ,
"typeName" : {
"id" : 1088 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "296:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string storage pointer"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "4461696c79204c696d697420457874656e73696f6e" ,
"id" : 1089 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "326:23:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_d825d71e418e7ec5e1c3c51592576f08c81f26d9ede420759434d9e0a688c12f" ,
"typeString" : "literal_string \"Daily Limit Extension\""
} ,
"value" : "Daily Limit Extension"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
"id" : 1093 ,
"name" : "VERSION" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1418 ,
"src" : "355:40:5" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string memory"
} ,
"typeName" : {
"id" : 1091 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "355:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string storage pointer"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "302e302e31" ,
"id" : 1092 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "388:7:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885" ,
"typeString" : "literal_string \"0.0.1\""
} ,
"value" : "0.0.1"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
"id" : 1096 ,
"name" : "TRANSFER_FUNCTION_IDENTIFIER" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1418 ,
"src" : "401:67:5" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"typeName" : {
"id" : 1094 ,
"name" : "bytes4" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "401:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "a9059cbb" ,
"id" : 1095 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "455:13:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_abce0605a16ff5e998983a0af570b8ad942bb11e305eb20ae3ada0a3be24eb97" ,
"typeString" : "literal_string (contains invalid UTF-8 sequence at position 0)"
} ,
"value" : null
} ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1098 ,
"name" : "masterCopy" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1418 ,
"src" : "475:30:5" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1097 ,
"name" : "DailyLimitExtension" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1418 ,
"src" : "475:19:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1100 ,
"name" : "gnosisSafe" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1418 ,
"src" : "511:28:5" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1099 ,
"name" : "GnosisSafe" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 963 ,
"src" : "511:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1104 ,
"name" : "dailyLimits" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1418 ,
"src" : "617:50:5" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1111_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitExtension.DailyLimit storage ref)"
} ,
"typeName" : {
"id" : 1103 ,
"keyType" : {
"id" : 1101 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "626:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "617:31:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1111_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitExtension.DailyLimit storage ref)"
} ,
"valueType" : {
"contractScope" : null ,
"id" : 1102 ,
"name" : "DailyLimit" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1111 ,
"src" : "637:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"canonicalName" : "DailyLimitExtension.DailyLimit" ,
"id" : 1111 ,
"members" : [
{
"constant" : false ,
"id" : 1106 ,
"name" : "dailyLimit" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1111 ,
"src" : "702:18:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1105 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "702:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1108 ,
"name" : "spentToday" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1111 ,
"src" : "730:18:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1107 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "730:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1110 ,
"name" : "lastDay" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1111 ,
"src" : "758:15:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1109 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "758:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"name" : "DailyLimit" ,
"nodeType" : "StructDefinition" ,
"scope" : 1418 ,
"src" : "674:106:5" ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1123 ,
"nodeType" : "Block" ,
"src" : "812:70:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1119 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1114 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2089 ,
"src" : "830:3:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 1115 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "830:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1117 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1100 ,
"src" : "852:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
] ,
"id" : 1116 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "844:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1118 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "844:19:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "830:33:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1113 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "822:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1120 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "822:42:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1121 ,
"nodeType" : "ExpressionStatement" ,
"src" : "822:42:5"
} ,
{
"id" : 1122 ,
"nodeType" : "PlaceholderStatement" ,
"src" : "874:1:5"
}
]
} ,
"id" : 1124 ,
"name" : "onlyGnosisSafe" ,
"nodeType" : "ModifierDefinition" ,
"parameters" : {
"id" : 1112 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "809:2:5"
} ,
"src" : "786:96:5" ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1138 ,
"nodeType" : "Block" ,
"src" : "1299:44:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1134 ,
"name" : "tokens" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1127 ,
"src" : "1315:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
{
"argumentTypes" : null ,
"id" : 1135 ,
"name" : "_dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1130 ,
"src" : "1323:12:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_memory_ptr" ,
"typeString" : "uint256[] memory"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
} ,
{
"typeIdentifier" : "t_array$_t_uint256_$dyn_memory_ptr" ,
"typeString" : "uint256[] memory"
}
] ,
"id" : 1133 ,
"name" : "setup" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1187 ,
"src" : "1309:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$" ,
"typeString" : "function (address[] memory,uint256[] memory)"
}
} ,
"id" : 1136 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1309:27:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1137 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1309:27:5"
}
]
} ,
"id" : 1139 ,
"implemented" : true ,
"isConstructor" : true ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "DailyLimitExtension" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1131 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1127 ,
"name" : "tokens" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1139 ,
"src" : "1238:16:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
} ,
"typeName" : {
"baseType" : {
"id" : 1125 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1238:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1126 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "1238:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[] storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1130 ,
"name" : "_dailyLimits" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1139 ,
"src" : "1256:22:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_memory_ptr" ,
"typeString" : "uint256[] memory"
} ,
"typeName" : {
"baseType" : {
"id" : 1128 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1256:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1129 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "1256:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_storage_ptr" ,
"typeString" : "uint256[] storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1237:42:5"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1132 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1299:0:5"
} ,
"scope" : 1418 ,
"src" : "1209:134:5" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1186 ,
"nodeType" : "Block" ,
"src" : "1661:348:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1153 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1150 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1100 ,
"src" : "1823:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
] ,
"id" : 1149 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "1815:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1151 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1815:19:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1152 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1838:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "1815:24:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1148 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "1807:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1154 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1807:33:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1155 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1807:33:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1161 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1156 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1100 ,
"src" : "1850:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1158 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2089 ,
"src" : "1874:3:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 1159 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "1874:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
] ,
"id" : 1157 ,
"name" : "GnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 963 ,
"src" : "1863:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_GnosisSafe_$963_$" ,
"typeString" : "type(contract GnosisSafe)"
}
} ,
"id" : 1160 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1863:22:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"src" : "1850:35:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"id" : 1162 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1850:35:5"
} ,
{
"body" : {
"expression" : {
"argumentTypes" : null ,
"id" : 1183 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1174 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1104 ,
"src" : "1951:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1111_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitExtension.DailyLimit storage ref)"
}
} ,
"id" : 1178 ,
"indexExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1175 ,
"name" : "tokens" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1142 ,
"src" : "1963:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1177 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1176 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1164 ,
"src" : "1970:1:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1963:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1951:22:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage ref"
}
} ,
"id" : 1179 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "dailyLimit" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1106 ,
"src" : "1951:33:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1180 ,
"name" : "_dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1145 ,
"src" : "1987:12:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_memory_ptr" ,
"typeString" : "uint256[] memory"
}
} ,
"id" : 1182 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1181 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1164 ,
"src" : "2000:1:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1987:15:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "1951:51:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1184 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1951:51:5"
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1170 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1167 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1164 ,
"src" : "1915:1:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1168 ,
"name" : "tokens" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1142 ,
"src" : "1919:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1169 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "1919:13:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "1915:17:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1185 ,
"initializationExpression" : {
"assignments" : [
1164
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1164 ,
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1187 ,
"src" : "1900:9:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1163 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1900:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1166 ,
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1165 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1912:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "1900:13:5"
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
"id" : 1172 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "1934:3:5" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1171 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1164 ,
"src" : "1934:1:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1173 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1934:3:5"
} ,
"nodeType" : "ForStatement" ,
"src" : "1895:107:5"
}
]
} ,
"id" : 1187 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "setup" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1146 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1142 ,
"name" : "tokens" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1187 ,
"src" : "1600:16:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
} ,
"typeName" : {
"baseType" : {
"id" : 1140 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1600:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1141 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "1600:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[] storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1145 ,
"name" : "_dailyLimits" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1187 ,
"src" : "1618:22:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_memory_ptr" ,
"typeString" : "uint256[] memory"
} ,
"typeName" : {
"baseType" : {
"id" : 1143 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1618:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1144 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "1618:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_storage_ptr" ,
"typeString" : "uint256[] storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1599:42:5"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1147 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1661:0:5"
} ,
"scope" : 1418 ,
"src" : "1585:424:5" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1206 ,
"nodeType" : "Block" ,
"src" : "2256:85:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1199 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1196 ,
"name" : "_masterCopy" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1189 ,
"src" : "2282:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
}
] ,
"id" : 1195 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "2274:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1197 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2274:20:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1198 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2298:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2274:25:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1194 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "2266:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1200 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2266:34:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1201 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2266:34:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1204 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1202 ,
"name" : "masterCopy" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1098 ,
"src" : "2310:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1203 ,
"name" : "_masterCopy" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1189 ,
"src" : "2323:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
}
} ,
"src" : "2310:24:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
}
} ,
"id" : 1205 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2310:24:5"
}
]
} ,
"id" : 1207 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : [ ] ,
"id" : 1192 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1191 ,
"name" : "onlyGnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1124 ,
"src" : "2237:14:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "2237:14:5"
}
] ,
"name" : "changeMasterCopy" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1190 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1189 ,
"name" : "_masterCopy" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1207 ,
"src" : "2181:31:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1188 ,
"name" : "DailyLimitExtension" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1418 ,
"src" : "2181:19:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2180:33:5"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1193 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "2256:0:5"
} ,
"scope" : 1418 ,
"src" : "2155:186:5" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1223 ,
"nodeType" : "Block" ,
"src" : "2672:59:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1221 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1216 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1104 ,
"src" : "2682:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1111_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitExtension.DailyLimit storage ref)"
}
} ,
"id" : 1218 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1217 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1209 ,
"src" : "2694:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2682:18:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage ref"
}
} ,
"id" : 1219 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "dailyLimit" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1106 ,
"src" : "2682:29:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1220 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1211 ,
"src" : "2714:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "2682:42:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1222 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2682:42:5"
}
]
} ,
"id" : 1224 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : [ ] ,
"id" : 1214 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1213 ,
"name" : "onlyGnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1124 ,
"src" : "2653:14:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "2653:14:5"
}
] ,
"name" : "changeDailyLimit" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1212 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1209 ,
"name" : "token" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1224 ,
"src" : "2595:13:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1208 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2595:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1211 ,
"name" : "dailyLimit" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1224 ,
"src" : "2610:18:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1210 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2610:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2594:35:5"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1215 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "2672:0:5"
} ,
"scope" : 1418 ,
"src" : "2569:162:5" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1347 ,
"nodeType" : "Block" ,
"src" : "3407:1164:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1244 ,
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1226 ,
"src" : "3521:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
] ,
"expression" : {
"argumentTypes" : null ,
"id" : 1242 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1100 ,
"src" : "3502:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"id" : 1243 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "isOwner" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 47 ,
"src" : "3502:18:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_external_view$_t_address_$returns$_t_bool_$" ,
"typeString" : "function (address) view external returns (bool)"
}
} ,
"id" : 1245 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3502:26:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1241 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "3494:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1246 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3494:35:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1247 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3494:35:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
} ,
"id" : 1253 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1249 ,
"name" : "operation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1234 ,
"src" : "3547:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1250 ,
"name" : "GnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 963 ,
"src" : "3560:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_GnosisSafe_$963_$" ,
"typeString" : "type(contract GnosisSafe)"
}
} ,
"id" : 1251 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 61 ,
"src" : "3560:20:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$61_$" ,
"typeString" : "type(enum GnosisSafe.Operation)"
}
} ,
"id" : 1252 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "Call" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "3560:25:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
}
} ,
"src" : "3547:38:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1248 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "3539:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1254 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3539:47:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1255 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3539:47:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"id" : 1273 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"id" : 1264 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1260 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1257 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1232 ,
"src" : "3671:4:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
"id" : 1258 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "3671:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1259 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3686:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3671:16:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1263 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1261 ,
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1230 ,
"src" : "3691:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1262 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3699:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3691:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3671:29:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "||" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"id" : 1272 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1268 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1265 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1232 ,
"src" : "3704:4:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
"id" : 1266 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "3704:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1267 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3718:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3704:15:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1271 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1269 ,
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1230 ,
"src" : "3723:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1270 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3732:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3723:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3704:29:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3671:62:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1256 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "3663:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1274 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3663:71:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1275 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3663:71:5"
} ,
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
"id" : 1277 ,
"name" : "token" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3744:13:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1276 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3744:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1278 ,
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "3744:13:5"
} ,
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
"id" : 1280 ,
"name" : "receiver" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3767:16:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1279 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3767:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1281 ,
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "3767:16:5"
} ,
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
"id" : 1283 ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3793:14:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1282 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3793:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1284 ,
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "3793:14:5"
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1288 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1285 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1232 ,
"src" : "3821:4:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
"id" : 1286 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "3821:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1287 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3836:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3821:16:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : {
"id" : 1316 ,
"nodeType" : "Block" ,
"src" : "3942:345:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1304 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1302 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1277 ,
"src" : "3956:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1303 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1228 ,
"src" : "3964:2:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "3956:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1305 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3956:10:5"
} ,
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
"id" : 1307 ,
"name" : "functionIdentifier" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3980:25:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"typeName" : {
"id" : 1306 ,
"name" : "bytes4" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3980:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1308 ,
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "3980:25:5"
} ,
{
"externalReferences" : [
{
"functionIdentifier" : {
"declaration" : 1307 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4046:18:5" ,
"valueSize" : 1
}
} ,
{
"amount" : {
"declaration" : 1283 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4158:6:5" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1232 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4078:4:5" ,
"valueSize" : 1
}
} ,
{
"receiver" : {
"declaration" : 1280 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4107:8:5" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1232 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4129:4:5" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1232 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4178:4:5" ,
"valueSize" : 1
}
}
] ,
"id" : 1309 ,
"nodeType" : "InlineAssembly" ,
"operations" : "{\n functionIdentifier := mload(add(data, 0x20))\n receiver := mload(add(data, 0x24))\n amount := mload(add(data, 0x44))\n}" ,
"src" : "4019:205:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"id" : 1313 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1311 ,
"name" : "functionIdentifier" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1307 ,
"src" : "4225:18:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1312 ,
"name" : "TRANSFER_FUNCTION_IDENTIFIER" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1096 ,
"src" : "4247:28:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"src" : "4225:50:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1310 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "4217:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1314 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4217:59:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1315 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4217:59:5"
}
]
} ,
"id" : 1317 ,
"nodeType" : "IfStatement" ,
"src" : "3817:470:5" ,
"trueBody" : {
"id" : 1301 ,
"nodeType" : "Block" ,
"src" : "3839:89:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1291 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1289 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1277 ,
"src" : "3853:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1290 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3861:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3853:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1292 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3853:9:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1295 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1293 ,
"name" : "receiver" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1280 ,
"src" : "3876:8:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1294 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1228 ,
"src" : "3887:2:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "3876:13:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1296 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3876:13:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1299 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1297 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1283 ,
"src" : "3903:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1298 ,
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1230 ,
"src" : "3912:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3903:14:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1300 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3903:14:5"
}
]
}
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1321 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1319 ,
"name" : "receiver" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1280 ,
"src" : "4304:8:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1320 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4316:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "4304:13:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1318 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "4296:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1322 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4296:22:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1323 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4296:22:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1327 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1325 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1283 ,
"src" : "4336:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1326 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4345:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "4336:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1324 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "4328:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1328 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4328:19:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1329 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4328:19:5"
} ,
{
"condition" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1331 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1277 ,
"src" : "4438:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 1332 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1283 ,
"src" : "4445:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 1330 ,
"name" : "isUnderLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1404 ,
"src" : "4425:12:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$" ,
"typeString" : "function (address,uint256) returns (bool)"
}
} ,
"id" : 1333 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4425:27:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1344 ,
"nodeType" : "IfStatement" ,
"src" : "4421:122:5" ,
"trueBody" : {
"id" : 1343 ,
"nodeType" : "Block" ,
"src" : "4454:89:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1339 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1334 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1104 ,
"src" : "4468:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1111_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitExtension.DailyLimit storage ref)"
}
} ,
"id" : 1336 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1335 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1277 ,
"src" : "4480:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4468:18:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage ref"
}
} ,
"id" : 1337 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1108 ,
"src" : "4468:29:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "+=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1338 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1283 ,
"src" : "4501:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4468:39:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1340 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4468:39:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1341 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4528:4:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"functionReturnParameters" : 1240 ,
"id" : 1342 ,
"nodeType" : "Return" ,
"src" : "4521:11:5"
}
]
}
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
"id" : 1345 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4559:5:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
"functionReturnParameters" : 1240 ,
"id" : 1346 ,
"nodeType" : "Return" ,
"src" : "4552:12:5"
}
]
} ,
"id" : 1348 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : [ ] ,
"id" : 1237 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1236 ,
"name" : "onlyGnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1124 ,
"src" : "3365:14:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "3365:14:5"
}
] ,
"name" : "isExecutable" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1235 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1226 ,
"name" : "sender" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3255:14:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1225 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3255:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1228 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3271:10:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1227 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3271:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1230 ,
"name" : "value" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3283:13:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1229 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3283:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1232 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3298:10:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
"typeName" : {
"id" : 1231 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3298:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1234 ,
"name" : "operation" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3310:30:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1233 ,
"name" : "GnosisSafe.Operation" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 61 ,
"src" : "3310:20:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3254:87:5"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1240 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1239 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3397:4:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 1238 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3397:4:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3396:6:5"
} ,
"scope" : 1418 ,
"src" : "3233:1338:5" ,
"stateMutability" : "nonpayable" ,
"superFunction" : 17 ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1403 ,
"nodeType" : "Block" ,
"src" : "4674:391:5" ,
"statements" : [
{
"assignments" : [
1358
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1358 ,
"name" : "dailyLimit" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1404 ,
"src" : "4684:29:5" ,
"stateVariable" : false ,
"storageLocation" : "storage" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1357 ,
"name" : "DailyLimit" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1111 ,
"src" : "4684:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1362 ,
"initialValue" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1359 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1104 ,
"src" : "4716:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1111_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitExtension.DailyLimit storage ref)"
}
} ,
"id" : 1361 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1360 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1350 ,
"src" : "4728:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4716:18:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage ref"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "4684:50:5"
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1367 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 1363 ,
"name" : "today" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1417 ,
"src" : "4748:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
"id" : 1364 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4748:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1365 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1358 ,
"src" : "4758:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"id" : 1366 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "lastDay" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1110 ,
"src" : "4758:18:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4748:28:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1382 ,
"nodeType" : "IfStatement" ,
"src" : "4744:126:5" ,
"trueBody" : {
"id" : 1381 ,
"nodeType" : "Block" ,
"src" : "4778:92:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1373 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1368 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1358 ,
"src" : "4792:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"id" : 1370 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "lastDay" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1110 ,
"src" : "4792:18:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 1371 ,
"name" : "today" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1417 ,
"src" : "4813:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
"id" : 1372 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4813:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4792:28:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1374 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4792:28:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1379 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1375 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1358 ,
"src" : "4834:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"id" : 1377 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1108 ,
"src" : "4834:21:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1378 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4858:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "4834:25:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1380 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4834:25:5"
}
]
}
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"id" : 1397 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1389 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1386 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1383 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1358 ,
"src" : "4886:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"id" : 1384 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1108 ,
"src" : "4886:21:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "+" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1385 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1352 ,
"src" : "4910:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4886:30:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<=" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1387 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1358 ,
"src" : "4920:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"id" : 1388 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "dailyLimit" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1106 ,
"src" : "4920:21:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4886:55:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1396 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1393 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1390 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1358 ,
"src" : "4957:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"id" : 1391 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1108 ,
"src" : "4957:21:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "+" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1392 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1352 ,
"src" : "4981:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4957:30:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1394 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1358 ,
"src" : "4990:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"id" : 1395 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1108 ,
"src" : "4990:21:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4957:54:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "4886:125:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1400 ,
"nodeType" : "IfStatement" ,
"src" : "4879:157:5" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1398 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5032:4:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"functionReturnParameters" : 1356 ,
"id" : 1399 ,
"nodeType" : "Return" ,
"src" : "5025:11:5"
}
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
"id" : 1401 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5053:5:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
"functionReturnParameters" : 1356 ,
"id" : 1402 ,
"nodeType" : "Return" ,
"src" : "5046:12:5"
}
]
} ,
"id" : 1404 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "isUnderLimit" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1353 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1350 ,
"name" : "token" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1404 ,
"src" : "4599:13:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1349 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4599:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1352 ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1404 ,
"src" : "4614:14:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1351 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4614:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4598:31:5"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1356 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1355 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1404 ,
"src" : "4664:4:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 1354 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4664:4:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4663:6:5"
} ,
"scope" : 1418 ,
"src" : "4577:488:5" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1416 ,
"nodeType" : "Block" ,
"src" : "5229:44:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1414 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1409 ,
"name" : "now" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2091 ,
"src" : "5246:3:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "-" ,
"rightExpression" : {
"argumentTypes" : null ,
"components" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1412 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1410 ,
"name" : "now" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2091 ,
"src" : "5253:3:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "%" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "31" ,
"id" : 1411 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5259:6:5" ,
"subdenomination" : "days" ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_86400_by_1" ,
"typeString" : "int_const 86400"
} ,
"value" : "1"
} ,
"src" : "5253:12:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"id" : 1413 ,
"isConstant" : false ,
"isInlineArray" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "TupleExpression" ,
"src" : "5252:14:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "5246:20:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"functionReturnParameters" : 1408 ,
"id" : 1415 ,
"nodeType" : "Return" ,
"src" : "5239:27:5"
}
]
} ,
"id" : 1417 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "today" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1405 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "5171:2:5"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1408 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1407 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1417 ,
"src" : "5219:4:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1406 ,
"name" : "uint" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5219:4:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "5218:6:5"
} ,
"scope" : 1418 ,
"src" : "5157:116:5" ,
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
}
] ,
"scope" : 1419 ,
"src" : "247:5028:5"
}
] ,
"src" : "0:5276:5"
} ,
"legacyAST" : {
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/extensions/DailyLimitExtension.sol" ,
"exportedSymbols" : {
"DailyLimitExtension" : [
1418
]
} ,
"id" : 1419 ,
"nodeType" : "SourceUnit" ,
"nodes" : [
{
"id" : 1083 ,
"literals" : [
"solidity" ,
"0.4" ,
".19"
] ,
"nodeType" : "PragmaDirective" ,
"src" : "0:23:5"
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Extension.sol" ,
"file" : "../Extension.sol" ,
"id" : 1084 ,
"nodeType" : "ImportDirective" ,
"scope" : 1419 ,
"sourceUnit" : 19 ,
"src" : "24:26:5" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol" ,
"file" : "../GnosisSafe.sol" ,
"id" : 1085 ,
"nodeType" : "ImportDirective" ,
"scope" : 1419 ,
"sourceUnit" : 964 ,
"src" : "51:27:5" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : [ ] ,
"baseName" : {
"contractScope" : null ,
"id" : 1086 ,
"name" : "Extension" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 18 ,
"src" : "279:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Extension_$18" ,
"typeString" : "contract Extension"
}
} ,
"id" : 1087 ,
"nodeType" : "InheritanceSpecifier" ,
"src" : "279:9:5"
}
] ,
"contractDependencies" : [
18
] ,
"contractKind" : "contract" ,
"documentation" : "@title Daily Limit Extension - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n @author Stefan George - <stefan@gnosis.pm>" ,
"fullyImplemented" : true ,
"id" : 1418 ,
"linearizedBaseContracts" : [
1418 ,
18
] ,
"name" : "DailyLimitExtension" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"constant" : true ,
"id" : 1090 ,
"name" : "NAME" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1418 ,
"src" : "296:53:5" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string memory"
} ,
"typeName" : {
"id" : 1088 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "296:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string storage pointer"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "4461696c79204c696d697420457874656e73696f6e" ,
"id" : 1089 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "326:23:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_d825d71e418e7ec5e1c3c51592576f08c81f26d9ede420759434d9e0a688c12f" ,
"typeString" : "literal_string \"Daily Limit Extension\""
} ,
"value" : "Daily Limit Extension"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
"id" : 1093 ,
"name" : "VERSION" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1418 ,
"src" : "355:40:5" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string memory"
} ,
"typeName" : {
"id" : 1091 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "355:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string storage pointer"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "302e302e31" ,
"id" : 1092 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "388:7:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885" ,
"typeString" : "literal_string \"0.0.1\""
} ,
"value" : "0.0.1"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
"id" : 1096 ,
"name" : "TRANSFER_FUNCTION_IDENTIFIER" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1418 ,
"src" : "401:67:5" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"typeName" : {
"id" : 1094 ,
"name" : "bytes4" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "401:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "a9059cbb" ,
"id" : 1095 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "455:13:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_abce0605a16ff5e998983a0af570b8ad942bb11e305eb20ae3ada0a3be24eb97" ,
"typeString" : "literal_string (contains invalid UTF-8 sequence at position 0)"
} ,
"value" : null
} ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1098 ,
"name" : "masterCopy" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1418 ,
"src" : "475:30:5" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1097 ,
"name" : "DailyLimitExtension" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1418 ,
"src" : "475:19:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1100 ,
"name" : "gnosisSafe" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1418 ,
"src" : "511:28:5" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1099 ,
"name" : "GnosisSafe" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 963 ,
"src" : "511:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1104 ,
"name" : "dailyLimits" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1418 ,
"src" : "617:50:5" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1111_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitExtension.DailyLimit storage ref)"
} ,
"typeName" : {
"id" : 1103 ,
"keyType" : {
"id" : 1101 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "626:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "617:31:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1111_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitExtension.DailyLimit storage ref)"
} ,
"valueType" : {
"contractScope" : null ,
"id" : 1102 ,
"name" : "DailyLimit" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1111 ,
"src" : "637:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"canonicalName" : "DailyLimitExtension.DailyLimit" ,
"id" : 1111 ,
"members" : [
{
"constant" : false ,
"id" : 1106 ,
"name" : "dailyLimit" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1111 ,
"src" : "702:18:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1105 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "702:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1108 ,
"name" : "spentToday" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1111 ,
"src" : "730:18:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1107 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "730:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1110 ,
"name" : "lastDay" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1111 ,
"src" : "758:15:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1109 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "758:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"name" : "DailyLimit" ,
"nodeType" : "StructDefinition" ,
"scope" : 1418 ,
"src" : "674:106:5" ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1123 ,
"nodeType" : "Block" ,
"src" : "812:70:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1119 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1114 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2089 ,
"src" : "830:3:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 1115 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "830:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1117 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1100 ,
"src" : "852:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
] ,
"id" : 1116 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "844:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1118 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "844:19:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "830:33:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1113 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "822:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1120 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "822:42:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1121 ,
"nodeType" : "ExpressionStatement" ,
"src" : "822:42:5"
} ,
{
"id" : 1122 ,
"nodeType" : "PlaceholderStatement" ,
"src" : "874:1:5"
}
]
} ,
"id" : 1124 ,
"name" : "onlyGnosisSafe" ,
"nodeType" : "ModifierDefinition" ,
"parameters" : {
"id" : 1112 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "809:2:5"
} ,
"src" : "786:96:5" ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1138 ,
"nodeType" : "Block" ,
"src" : "1299:44:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1134 ,
"name" : "tokens" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1127 ,
"src" : "1315:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
{
"argumentTypes" : null ,
"id" : 1135 ,
"name" : "_dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1130 ,
"src" : "1323:12:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_memory_ptr" ,
"typeString" : "uint256[] memory"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
} ,
{
"typeIdentifier" : "t_array$_t_uint256_$dyn_memory_ptr" ,
"typeString" : "uint256[] memory"
}
] ,
"id" : 1133 ,
"name" : "setup" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1187 ,
"src" : "1309:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$" ,
"typeString" : "function (address[] memory,uint256[] memory)"
}
} ,
"id" : 1136 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1309:27:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1137 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1309:27:5"
}
]
} ,
"id" : 1139 ,
"implemented" : true ,
"isConstructor" : true ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "DailyLimitExtension" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1131 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1127 ,
"name" : "tokens" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1139 ,
"src" : "1238:16:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
} ,
"typeName" : {
"baseType" : {
"id" : 1125 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1238:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1126 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "1238:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[] storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1130 ,
"name" : "_dailyLimits" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1139 ,
"src" : "1256:22:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_memory_ptr" ,
"typeString" : "uint256[] memory"
} ,
"typeName" : {
"baseType" : {
"id" : 1128 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1256:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1129 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "1256:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_storage_ptr" ,
"typeString" : "uint256[] storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1237:42:5"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1132 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1299:0:5"
} ,
"scope" : 1418 ,
"src" : "1209:134:5" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1186 ,
"nodeType" : "Block" ,
"src" : "1661:348:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1153 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1150 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1100 ,
"src" : "1823:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
] ,
"id" : 1149 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "1815:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1151 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1815:19:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1152 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1838:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "1815:24:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1148 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "1807:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1154 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1807:33:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1155 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1807:33:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1161 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1156 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1100 ,
"src" : "1850:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1158 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2089 ,
"src" : "1874:3:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 1159 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "1874:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
] ,
"id" : 1157 ,
"name" : "GnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 963 ,
"src" : "1863:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_GnosisSafe_$963_$" ,
"typeString" : "type(contract GnosisSafe)"
}
} ,
"id" : 1160 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1863:22:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"src" : "1850:35:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"id" : 1162 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1850:35:5"
} ,
{
"body" : {
"expression" : {
"argumentTypes" : null ,
"id" : 1183 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1174 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1104 ,
"src" : "1951:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1111_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitExtension.DailyLimit storage ref)"
}
} ,
"id" : 1178 ,
"indexExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1175 ,
"name" : "tokens" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1142 ,
"src" : "1963:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1177 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1176 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1164 ,
"src" : "1970:1:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1963:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1951:22:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage ref"
}
} ,
"id" : 1179 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "dailyLimit" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1106 ,
"src" : "1951:33:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1180 ,
"name" : "_dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1145 ,
"src" : "1987:12:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_memory_ptr" ,
"typeString" : "uint256[] memory"
}
} ,
"id" : 1182 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1181 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1164 ,
"src" : "2000:1:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1987:15:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "1951:51:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1184 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1951:51:5"
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1170 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1167 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1164 ,
"src" : "1915:1:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1168 ,
"name" : "tokens" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1142 ,
"src" : "1919:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1169 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "1919:13:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "1915:17:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1185 ,
"initializationExpression" : {
"assignments" : [
1164
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1164 ,
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1187 ,
"src" : "1900:9:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1163 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1900:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1166 ,
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1165 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1912:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "1900:13:5"
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
"id" : 1172 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "1934:3:5" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1171 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1164 ,
"src" : "1934:1:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1173 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1934:3:5"
} ,
"nodeType" : "ForStatement" ,
"src" : "1895:107:5"
}
]
} ,
"id" : 1187 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "setup" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1146 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1142 ,
"name" : "tokens" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1187 ,
"src" : "1600:16:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
} ,
"typeName" : {
"baseType" : {
"id" : 1140 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1600:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1141 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "1600:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[] storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1145 ,
"name" : "_dailyLimits" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1187 ,
"src" : "1618:22:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_memory_ptr" ,
"typeString" : "uint256[] memory"
} ,
"typeName" : {
"baseType" : {
"id" : 1143 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1618:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1144 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "1618:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_storage_ptr" ,
"typeString" : "uint256[] storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1599:42:5"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1147 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1661:0:5"
} ,
"scope" : 1418 ,
"src" : "1585:424:5" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1206 ,
"nodeType" : "Block" ,
"src" : "2256:85:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1199 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1196 ,
"name" : "_masterCopy" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1189 ,
"src" : "2282:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
}
] ,
"id" : 1195 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "2274:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1197 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2274:20:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1198 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2298:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2274:25:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1194 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "2266:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1200 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2266:34:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1201 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2266:34:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1204 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1202 ,
"name" : "masterCopy" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1098 ,
"src" : "2310:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1203 ,
"name" : "_masterCopy" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1189 ,
"src" : "2323:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
}
} ,
"src" : "2310:24:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
}
} ,
"id" : 1205 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2310:24:5"
}
]
} ,
"id" : 1207 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : [ ] ,
"id" : 1192 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1191 ,
"name" : "onlyGnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1124 ,
"src" : "2237:14:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "2237:14:5"
}
] ,
"name" : "changeMasterCopy" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1190 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1189 ,
"name" : "_masterCopy" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1207 ,
"src" : "2181:31:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1188 ,
"name" : "DailyLimitExtension" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1418 ,
"src" : "2181:19:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_DailyLimitExtension_$1418" ,
"typeString" : "contract DailyLimitExtension"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2180:33:5"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1193 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "2256:0:5"
} ,
"scope" : 1418 ,
"src" : "2155:186:5" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1223 ,
"nodeType" : "Block" ,
"src" : "2672:59:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1221 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1216 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1104 ,
"src" : "2682:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1111_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitExtension.DailyLimit storage ref)"
}
} ,
"id" : 1218 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1217 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1209 ,
"src" : "2694:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2682:18:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage ref"
}
} ,
"id" : 1219 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "dailyLimit" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1106 ,
"src" : "2682:29:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1220 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1211 ,
"src" : "2714:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "2682:42:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1222 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2682:42:5"
}
]
} ,
"id" : 1224 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : [ ] ,
"id" : 1214 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1213 ,
"name" : "onlyGnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1124 ,
"src" : "2653:14:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "2653:14:5"
}
] ,
"name" : "changeDailyLimit" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1212 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1209 ,
"name" : "token" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1224 ,
"src" : "2595:13:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1208 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2595:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1211 ,
"name" : "dailyLimit" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1224 ,
"src" : "2610:18:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1210 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2610:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2594:35:5"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1215 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "2672:0:5"
} ,
"scope" : 1418 ,
"src" : "2569:162:5" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1347 ,
"nodeType" : "Block" ,
"src" : "3407:1164:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1244 ,
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1226 ,
"src" : "3521:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
] ,
"expression" : {
"argumentTypes" : null ,
"id" : 1242 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1100 ,
"src" : "3502:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"id" : 1243 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "isOwner" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 47 ,
"src" : "3502:18:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_external_view$_t_address_$returns$_t_bool_$" ,
"typeString" : "function (address) view external returns (bool)"
}
} ,
"id" : 1245 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3502:26:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1241 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "3494:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1246 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3494:35:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1247 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3494:35:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
} ,
"id" : 1253 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1249 ,
"name" : "operation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1234 ,
"src" : "3547:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1250 ,
"name" : "GnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 963 ,
"src" : "3560:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_GnosisSafe_$963_$" ,
"typeString" : "type(contract GnosisSafe)"
}
} ,
"id" : 1251 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 61 ,
"src" : "3560:20:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$61_$" ,
"typeString" : "type(enum GnosisSafe.Operation)"
}
} ,
"id" : 1252 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "Call" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "3560:25:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
}
} ,
"src" : "3547:38:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1248 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "3539:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1254 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3539:47:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1255 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3539:47:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"id" : 1273 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"id" : 1264 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1260 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1257 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1232 ,
"src" : "3671:4:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
"id" : 1258 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "3671:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1259 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3686:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3671:16:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1263 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1261 ,
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1230 ,
"src" : "3691:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1262 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3699:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3691:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3671:29:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "||" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"id" : 1272 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1268 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1265 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1232 ,
"src" : "3704:4:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
"id" : 1266 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "3704:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1267 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3718:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3704:15:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1271 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1269 ,
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1230 ,
"src" : "3723:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1270 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3732:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3723:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3704:29:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3671:62:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1256 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "3663:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1274 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3663:71:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1275 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3663:71:5"
} ,
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
"id" : 1277 ,
"name" : "token" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3744:13:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1276 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3744:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1278 ,
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "3744:13:5"
} ,
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
"id" : 1280 ,
"name" : "receiver" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3767:16:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1279 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3767:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1281 ,
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "3767:16:5"
} ,
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
"id" : 1283 ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3793:14:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1282 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3793:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1284 ,
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "3793:14:5"
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1288 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1285 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1232 ,
"src" : "3821:4:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
"id" : 1286 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "3821:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1287 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3836:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3821:16:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : {
"id" : 1316 ,
"nodeType" : "Block" ,
"src" : "3942:345:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1304 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1302 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1277 ,
"src" : "3956:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1303 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1228 ,
"src" : "3964:2:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "3956:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1305 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3956:10:5"
} ,
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
"id" : 1307 ,
"name" : "functionIdentifier" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3980:25:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"typeName" : {
"id" : 1306 ,
"name" : "bytes4" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3980:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1308 ,
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "3980:25:5"
} ,
{
"externalReferences" : [
{
"functionIdentifier" : {
"declaration" : 1307 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4046:18:5" ,
"valueSize" : 1
}
} ,
{
"amount" : {
"declaration" : 1283 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4158:6:5" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1232 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4078:4:5" ,
"valueSize" : 1
}
} ,
{
"receiver" : {
"declaration" : 1280 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4107:8:5" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1232 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4129:4:5" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1232 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4178:4:5" ,
"valueSize" : 1
}
}
] ,
"id" : 1309 ,
"nodeType" : "InlineAssembly" ,
"operations" : "{\n functionIdentifier := mload(add(data, 0x20))\n receiver := mload(add(data, 0x24))\n amount := mload(add(data, 0x44))\n}" ,
"src" : "4019:205:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"id" : 1313 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1311 ,
"name" : "functionIdentifier" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1307 ,
"src" : "4225:18:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1312 ,
"name" : "TRANSFER_FUNCTION_IDENTIFIER" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1096 ,
"src" : "4247:28:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"src" : "4225:50:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1310 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "4217:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1314 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4217:59:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1315 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4217:59:5"
}
]
} ,
"id" : 1317 ,
"nodeType" : "IfStatement" ,
"src" : "3817:470:5" ,
"trueBody" : {
"id" : 1301 ,
"nodeType" : "Block" ,
"src" : "3839:89:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1291 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1289 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1277 ,
"src" : "3853:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1290 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3861:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3853:9:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1292 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3853:9:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1295 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1293 ,
"name" : "receiver" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1280 ,
"src" : "3876:8:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1294 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1228 ,
"src" : "3887:2:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "3876:13:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1296 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3876:13:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1299 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1297 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1283 ,
"src" : "3903:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1298 ,
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1230 ,
"src" : "3912:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3903:14:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1300 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3903:14:5"
}
]
}
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1321 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1319 ,
"name" : "receiver" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1280 ,
"src" : "4304:8:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1320 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4316:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "4304:13:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1318 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "4296:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1322 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4296:22:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1323 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4296:22:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1327 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1325 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1283 ,
"src" : "4336:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1326 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4345:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "4336:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1324 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "4328:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1328 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4328:19:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1329 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4328:19:5"
} ,
{
"condition" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1331 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1277 ,
"src" : "4438:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 1332 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1283 ,
"src" : "4445:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 1330 ,
"name" : "isUnderLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1404 ,
"src" : "4425:12:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$" ,
"typeString" : "function (address,uint256) returns (bool)"
}
} ,
"id" : 1333 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4425:27:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1344 ,
"nodeType" : "IfStatement" ,
"src" : "4421:122:5" ,
"trueBody" : {
"id" : 1343 ,
"nodeType" : "Block" ,
"src" : "4454:89:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1339 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1334 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1104 ,
"src" : "4468:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1111_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitExtension.DailyLimit storage ref)"
}
} ,
"id" : 1336 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1335 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1277 ,
"src" : "4480:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4468:18:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage ref"
}
} ,
"id" : 1337 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1108 ,
"src" : "4468:29:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "+=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1338 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1283 ,
"src" : "4501:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4468:39:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1340 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4468:39:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1341 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4528:4:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"functionReturnParameters" : 1240 ,
"id" : 1342 ,
"nodeType" : "Return" ,
"src" : "4521:11:5"
}
]
}
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
"id" : 1345 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4559:5:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
"functionReturnParameters" : 1240 ,
"id" : 1346 ,
"nodeType" : "Return" ,
"src" : "4552:12:5"
}
]
} ,
"id" : 1348 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : [ ] ,
"id" : 1237 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1236 ,
"name" : "onlyGnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1124 ,
"src" : "3365:14:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "3365:14:5"
}
] ,
"name" : "isExecutable" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1235 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1226 ,
"name" : "sender" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3255:14:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1225 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3255:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1228 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3271:10:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1227 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3271:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1230 ,
"name" : "value" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3283:13:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1229 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3283:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1232 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3298:10:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
"typeName" : {
"id" : 1231 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3298:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1234 ,
"name" : "operation" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3310:30:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1233 ,
"name" : "GnosisSafe.Operation" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 61 ,
"src" : "3310:20:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3254:87:5"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1240 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1239 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1348 ,
"src" : "3397:4:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 1238 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3397:4:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3396:6:5"
} ,
"scope" : 1418 ,
"src" : "3233:1338:5" ,
"stateMutability" : "nonpayable" ,
"superFunction" : 17 ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1403 ,
"nodeType" : "Block" ,
"src" : "4674:391:5" ,
"statements" : [
{
"assignments" : [
1358
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1358 ,
"name" : "dailyLimit" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1404 ,
"src" : "4684:29:5" ,
"stateVariable" : false ,
"storageLocation" : "storage" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1357 ,
"name" : "DailyLimit" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1111 ,
"src" : "4684:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1362 ,
"initialValue" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1359 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1104 ,
"src" : "4716:11:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1111_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitExtension.DailyLimit storage ref)"
}
} ,
"id" : 1361 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1360 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1350 ,
"src" : "4728:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4716:18:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage ref"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "4684:50:5"
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1367 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 1363 ,
"name" : "today" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1417 ,
"src" : "4748:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
"id" : 1364 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4748:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1365 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1358 ,
"src" : "4758:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"id" : 1366 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "lastDay" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1110 ,
"src" : "4758:18:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4748:28:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1382 ,
"nodeType" : "IfStatement" ,
"src" : "4744:126:5" ,
"trueBody" : {
"id" : 1381 ,
"nodeType" : "Block" ,
"src" : "4778:92:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1373 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1368 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1358 ,
"src" : "4792:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"id" : 1370 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "lastDay" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1110 ,
"src" : "4792:18:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 1371 ,
"name" : "today" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1417 ,
"src" : "4813:5:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
"id" : 1372 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4813:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4792:28:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1374 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4792:28:5"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1379 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1375 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1358 ,
"src" : "4834:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"id" : 1377 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1108 ,
"src" : "4834:21:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1378 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4858:1:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "4834:25:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1380 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4834:25:5"
}
]
}
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"id" : 1397 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1389 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1386 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1383 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1358 ,
"src" : "4886:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"id" : 1384 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1108 ,
"src" : "4886:21:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "+" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1385 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1352 ,
"src" : "4910:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4886:30:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<=" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1387 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1358 ,
"src" : "4920:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"id" : 1388 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "dailyLimit" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1106 ,
"src" : "4920:21:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4886:55:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1396 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1393 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1390 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1358 ,
"src" : "4957:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"id" : 1391 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1108 ,
"src" : "4957:21:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "+" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1392 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1352 ,
"src" : "4981:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4957:30:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1394 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1358 ,
"src" : "4990:10:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1111_storage_ptr" ,
"typeString" : "struct DailyLimitExtension.DailyLimit storage pointer"
}
} ,
"id" : 1395 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1108 ,
"src" : "4990:21:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4957:54:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "4886:125:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1400 ,
"nodeType" : "IfStatement" ,
"src" : "4879:157:5" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1398 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5032:4:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"functionReturnParameters" : 1356 ,
"id" : 1399 ,
"nodeType" : "Return" ,
"src" : "5025:11:5"
}
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
"id" : 1401 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5053:5:5" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
"functionReturnParameters" : 1356 ,
"id" : 1402 ,
"nodeType" : "Return" ,
"src" : "5046:12:5"
}
]
} ,
"id" : 1404 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "isUnderLimit" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1353 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1350 ,
"name" : "token" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1404 ,
"src" : "4599:13:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1349 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4599:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1352 ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1404 ,
"src" : "4614:14:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1351 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4614:7:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4598:31:5"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1356 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1355 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1404 ,
"src" : "4664:4:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 1354 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4664:4:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4663:6:5"
} ,
"scope" : 1418 ,
"src" : "4577:488:5" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1416 ,
"nodeType" : "Block" ,
"src" : "5229:44:5" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1414 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1409 ,
"name" : "now" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2091 ,
"src" : "5246:3:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "-" ,
"rightExpression" : {
"argumentTypes" : null ,
"components" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1412 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1410 ,
"name" : "now" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2091 ,
"src" : "5253:3:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "%" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "31" ,
"id" : 1411 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5259:6:5" ,
"subdenomination" : "days" ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_86400_by_1" ,
"typeString" : "int_const 86400"
} ,
"value" : "1"
} ,
"src" : "5253:12:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"id" : 1413 ,
"isConstant" : false ,
"isInlineArray" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "TupleExpression" ,
"src" : "5252:14:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "5246:20:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"functionReturnParameters" : 1408 ,
"id" : 1415 ,
"nodeType" : "Return" ,
"src" : "5239:27:5"
}
]
} ,
"id" : 1417 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "today" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1405 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "5171:2:5"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1408 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1407 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1417 ,
"src" : "5219:4:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1406 ,
"name" : "uint" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5219:4:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "5218:6:5"
} ,
"scope" : 1418 ,
"src" : "5157:116:5" ,
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
}
] ,
"scope" : 1419 ,
"src" : "247:5028:5"
}
] ,
"src" : "0:5276:5"
} ,
"compiler" : {
"name" : "solc" ,
"version" : "0.4.19+commit.c4cbbb05.Emscripten.clang"
} ,
"networks" : {
"4" : {
"events" : { } ,
"links" : { } ,
"address" : "0xa79d02e23d840830c4f6c623a2b60310769c3a4b" ,
"transactionHash" : "0xb3a98f4a3e8373b6de6b63eaf25e88a3593003119f1df8a30a020f4c9a6cc322"
} ,
"42" : {
"events" : { } ,
"links" : { } ,
"address" : "0xd563051ec0a4aa4756dd1f0d21ef2e6ef0fae3e2" ,
"transactionHash" : "0xdec49def750774a696ff6d1de86b27d3eac5967850d8f56e85f7c93bfaf17592"
} ,
"1525342778744" : {
"events" : { } ,
"links" : { } ,
"address" : "0x1b701c69619a38a7b779bef1f8a72dec2b9f402f" ,
"transactionHash" : "0xe329bfbfb0449b969df0e144a935e7f94e58f4e7188f6c6626faf1d7ee7ded84"
2018-05-08 16:41:03 +02:00
} ,
"1525789101965" : {
"events" : { } ,
"links" : { } ,
"address" : "0xee471df0173d120eface5e5cf69a05cc4d1ce78a" ,
"transactionHash" : "0xfd1473bdb9d32d9cef56f6fc22af6034ebd9f2aeb8d55ce0985f29b4086514a2"
2018-05-04 16:04:04 +02:00
}
} ,
"schemaVersion" : "2.0.0" ,
2018-05-08 16:41:03 +02:00
"updatedAt" : "2018-05-08T14:18:44.022Z"
2018-05-04 16:04:04 +02:00
}