2018-05-31 13:01:02 +00:00
{
"contractName" : "DailyLimitModule" ,
"abi" : [
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "manager" ,
"outputs" : [
{
"name" : "" ,
"type" : "address"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "_masterCopy" ,
"type" : "address"
}
] ,
"name" : "changeMasterCopy" ,
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "NAME" ,
"outputs" : [
{
"name" : "" ,
"type" : "string"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [
{
"name" : "" ,
"type" : "address"
}
] ,
"name" : "dailyLimits" ,
"outputs" : [
{
"name" : "dailyLimit" ,
"type" : "uint256"
} ,
{
"name" : "spentToday" ,
"type" : "uint256"
} ,
{
"name" : "lastDay" ,
"type" : "uint256"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "VERSION" ,
"outputs" : [
{
"name" : "" ,
"type" : "string"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "tokens" ,
"type" : "address[]"
} ,
{
"name" : "_dailyLimits" ,
"type" : "uint256[]"
}
] ,
"name" : "setup" ,
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "token" ,
"type" : "address"
} ,
{
"name" : "dailyLimit" ,
"type" : "uint256"
}
] ,
"name" : "changeDailyLimit" ,
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "token" ,
"type" : "address"
} ,
{
"name" : "to" ,
"type" : "address"
} ,
{
"name" : "amount" ,
"type" : "uint256"
}
] ,
"name" : "executeDailyLimit" ,
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "today" ,
"outputs" : [
{
"name" : "" ,
"type" : "uint256"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
}
] ,
"bytecode" : " 0 x 608060405234801561001057600080 f d 5 b 5061129 b 806100206000396000 f 300608060405260043610610099576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 16806328814 f 0 31461009e578063481 c 6 a 751461014757806363 b a e 7 c 31461019e5780637 d e 7 e d e f 1461020 b 57806381 c 5e03 b 1461024e578063 a 3 f 4 d f 7e1461029 b 578063 b 74e452 b 1461032 b 578063 d 7 b f f c 9214610356578063 f f a 1 a d 74146103 b b 575 b 600080 f d 5 b 3480156100 a a 57600080 f d 5 b 50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044 b 565 b 0 0 5 b 34801561015357600080 f d 5 b 5061015 c 6104 e a 565 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 3480156101 a a 57600080 f d 5 b 50610209600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919080359060200190929190505050610510565 b 0 0 5 b 34801561021757600080 f d 5 b 5061024 c 600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190505050610 d 0 0 565 b 0 0 5 b 34801561025 a 57600080 f d 5 b 50610299600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919080359060200190929190505050610 e e 3565 b 0 0 5 b 3480156102 a 757600080 f d 5 b 506102 b 0 611019565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 838110156102 f 0 5780820151818401526020810190506102 d 5565 b 50505050905090810190601 f 16801561031 d 5780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 34801561033757600080 f d 5 b 50610340611052565 b 6040518082815260200191505060405180910390 f 35 b 34801561036257600080 f d 5 b 50610397600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919050505061106 a 565 b 60405180848152602001838152602001828152602001935050505060405180910390 f 35 b 3480156103 c 757600080 f d 5 b 506103 d 0 611094565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 838110156104105780820151818401526020810190506103 f 5565 b 50505050905090810190601 f 16801561043 d 5780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 60006104556110 c d 565 b 600090505 b 82518110156104e557818181518110151561047157 f e 5 b 9060200190602002015160026000858481518110151561048 d 57 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 16815260200190815260200160002060000181905550808060010191505061045 a 565 b 505050565 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 6060600160009054906101000 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 16632 f 54 b f 6e336040518263 f f f f f f f f 167 c 0 100000000000000000000000000000000000000000000000000000000028152600401808273 f f f f f f f f f f f f f f f f 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 168152602001915050602060405180830381600087803 b 1580156105 c f 57600080 f d 5 b 505 a f 11580156105e3573 d 6000803e3 d 6000 f d 5 b 505050506040513 d 60208110156105 f 957600080 f d 5 b 810190808051906020019092919050505015156106 a 4576040517 f 0 8 c 379 a 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 0 81526004018080602001828103825260258152602001807 f 4 d 6574686 f 642063616e206 f 6e6 c 792062652063616 c 6 c 656420627920616e2081526020017 f 6 f 776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390 f d 5 b 60008373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1614151515610733576040517 f 0 8 c 379 a 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 0 815260040180806020018281038252601 b 8152602001807 f 496e76616 c 696420746 f 20616464726573732070726 f 7669646564000000000081525060200191505060405180910390 f d 5 b 6000821115156107 a b 576040517 f 0 8 c 379 a 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 0 81526004018080602001828103825260178152602001807 f 496e76616 c 696420616 d 6 f 756e742070726 f 766964656400000000000000000081525060200191505060405180910390 f d 5 b 6107 b 584836111 c 0 565 b 1515610829576040517 f 0 8 c 379 a 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
"deployedBytecode" : " 0 x 608060405260043610610099576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 16806328814 f 0 31461009e578063481 c 6 a 751461014757806363 b a e 7 c 31461019e5780637 d e 7 e d e f 1461020 b 57806381 c 5e03 b 1461024e578063 a 3 f 4 d f 7e1461029 b 578063 b 74e452 b 1461032 b 578063 d 7 b f f c 9214610356578063 f f a 1 a d 74146103 b b 575 b 600080 f d 5 b 3480156100 a a 57600080 f d 5 b 50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044 b 565 b 0 0 5 b 34801561015357600080 f d 5 b 5061015 c 6104 e a 565 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 3480156101 a a 57600080 f d 5 b 50610209600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919080359060200190929190505050610510565 b 0 0 5 b 34801561021757600080 f d 5 b 5061024 c 600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190505050610 d 0 0 565 b 0 0 5 b 34801561025 a 57600080 f d 5 b 50610299600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919080359060200190929190505050610 e e 3565 b 0 0 5 b 3480156102 a 757600080 f d 5 b 506102 b 0 611019565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 838110156102 f 0 5780820151818401526020810190506102 d 5565 b 50505050905090810190601 f 16801561031 d 5780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 34801561033757600080 f d 5 b 50610340611052565 b 6040518082815260200191505060405180910390 f 35 b 34801561036257600080 f d 5 b 50610397600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919050505061106 a 565 b 60405180848152602001838152602001828152602001935050505060405180910390 f 35 b 3480156103 c 757600080 f d 5 b 506103 d 0 611094565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 838110156104105780820151818401526020810190506103 f 5565 b 50505050905090810190601 f 16801561043 d 5780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 60006104556110 c d 565 b 600090505 b 82518110156104e557818181518110151561047157 f e 5 b 9060200190602002015160026000858481518110151561048 d 57 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 16815260200190815260200160002060000181905550808060010191505061045 a 565 b 505050565 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 6060600160009054906101000 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 16632 f 54 b f 6e336040518263 f f f f f f f f 167 c 0 100000000000000000000000000000000000000000000000000000000028152600401808273 f f f f f f f f f f f f f f f f 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 168152602001915050602060405180830381600087803 b 1580156105 c f 57600080 f d 5 b 505 a f 11580156105e3573 d 6000803e3 d 6000 f d 5 b 505050506040513 d 60208110156105 f 957600080 f d 5 b 810190808051906020019092919050505015156106 a 4576040517 f 0 8 c 379 a 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 0 81526004018080602001828103825260258152602001807 f 4 d 6574686 f 642063616e206 f 6e6 c 792062652063616 c 6 c 656420627920616e2081526020017 f 6 f 776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390 f d 5 b 60008373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1614151515610733576040517 f 0 8 c 379 a 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 0 815260040180806020018281038252601 b 8152602001807 f 496e76616 c 696420746 f 20616464726573732070726 f 7669646564000000000081525060200191505060405180910390 f d 5 b 6000821115156107 a b 576040517 f 0 8 c 379 a 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 0 81526004018080602001828103825260178152602001807 f 496e76616 c 696420616 d 6 f 756e742070726 f 766964656400000000000000000081525060200191505060405180910390 f d 5 b 6107 b 584836111 c 0 565 b 1515610829576040517 f 0 8 c 379 a 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 0 815260040180806020018281038252601 c 8152
"sourceMap" : "296:3285:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;296:3285:17;;;;;;;" ,
"deployedSourceMap" : " 296 : 3285 : 17 : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 918 : 222 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 918 : 222 : 17 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 262 : 28 : 7 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 262 : 28 : 7 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1890 : 987 : 17 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 1890 : 987 : 17 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 626 : 248 : 5 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 626 : 248 : 5 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1368 : 158 : 17 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 1368 : 158 : 17 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 339 : 50 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 339 : 50 : 17 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 23 : 1 : -1 ; 8 : 100 ; 33 : 3 ; 30 : 1 ; 27 : 10 ; 8 : 100 ; ; ; 99 : 1 ; 94 : 3 ; 90 : 11 ; 84 : 18 ; 80 : 1 ; 75 : 3 ; 71 : 11 ; 64 : 39 ; 52 : 2 ; 49 : 1 ; 45 : 10 ; 40 : 15 ; ; 8 : 100 ; ; ; 12 : 14 ; 339 : 50 : 17 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 3463 : 116 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 3463 : 116 : 17 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 513 : 50 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 513 : 50 : 17 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 395 : 40 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 395 : 40 : 17 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 23 : 1 : -1 ; 8 : 100 ; 33 : 3 ; 30 : 1 ; 27 : 10 ; 8 : 100 ; ; ; 99 : 1 ; 94 : 3 ; 90 : 11 ; 84 : 18 ; 80 : 1 ; 75 : 3 ; 71 : 11 ; 64 : 39 ; 52 : 2 ; 49 : 1 ; 45 : 10 ; 40 : 15 ; ; 8 : 100 ; ; ; 12 : 14 ; 395 : 40 : 17 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 918 : 222 ; 1031 : 9 ; 1004 : 12 ; : 10 ; : 12 : : i ; : : : - ; 1043 : 1 ; 1031 : 13 ; ; 1026 : 107 ; 1050 : 6 ; : 13 ; 1046 : 1 ; : 17 ; 1026 : 107 ; ; ; 1118 : 12 ; 1131 : 1 ; 1118 : 15 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1082 : 11 ; : 22 ; 1094 : 6 ; 1101 : 1 ; 1094 : 9 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1082 : 22 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : 33 ; ; : 51 ; ; ; ; 1065 : 3 ; ; ; ; ; ; ; 1026 : 107 ; ; ; 918 : 222 ; ; ; : : : o ; 262 : 28 : 7 : - ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 1890 : 987 : 17 : - ; 2647 : 17 ; 2087 : 7 ; ; ; ; ; ; ; ; ; ; ; 2074 : 29 ; ; ; 2104 : 10 ; 2074 : 41 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 2074 : 41 : 17 ; ; ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 45 : 16 ; 42 : 1 ; 39 ; 24 : 38 ; 77 : 16 ; 74 : 1 ; 67 : 27 ; 5 : 2 ; 2074 : 41 : 17 ; ; ; ; ; ; ; 13 : 2 : -1 ; 8 : 3 ; 5 : 11 ; 2 : 2 ; ; ; 29 : 1 ; 26 ; 19 : 12 ; 2 : 2 ; 2074 : 41 : 17 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2066 : 91 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2181 : 1 ; 2175 : 2 ; : 7 ; ; ; ; 2167 : 47 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2241 : 1 ; 2232 : 6 ; : 10 ; 2224 : 46 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2352 : 27 ; 2365 : 5 ; 2372 : 6 ; 2352 : 12 ; : 27 : : i ; : : : - ; 2344 : 68 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2455 : 6 ; 2422 : 11 ; : 18 ; 2434 : 5 ; 2422 : 18 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : 29 ; ; ; : 39 ; ; ; ; ; ; ; ; ; ; ; 2484 : 1 ; 2475 : 5 ; : 10 ; ; ; 2471 : 400 ; ; ; 2509 : 7 ; ; ; ; ; ; ; ; ; ; ; : 33 ; ; ; 2543 : 2 ; 2547 : 6 ; 2559 : 19 ; 2509 : 70 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 2509 : 70 : 17 ; ; ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 45 : 16 ; 42 : 1 ; 39 ; 24 : 38 ; 77 : 16 ; 74 : 1 ; 67 : 27 ; 5 : 2 ; 2509 : 70 : 17 ; ; ; ; ; ; ; 13 : 2 : -1 ; 8 : 3 ; 5 : 11 ; 2 : 2 ; ; ; 29 : 1 ; 26 ; 19 : 12 ; 2 : 2 ; 2509 : 70 : 17 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2501 : 115 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2471 : 400 ; ; ; 2720 : 2 ; 2724 : 6 ; 2667 : 64 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 49 : 4 : -1 ; 39 : 7 ; 30 ; 26 : 21 ; 22 : 32 ; 13 : 7 ; 6 : 49 ; 2667 : 64 : 17 ; ; ; ; ; ; ; 38 : 4 : -1 ; 29 : 7 ; 25 : 18 ; 67 : 10 ; 61 : 17 ; 96 : 58 ; 199 : 8 ; 192 : 4 ; 186 ; 182 : 15 ; 179 : 29 ; 167 : 10 ; 160 : 49 ; 0 : 215 ; ; ; 2667 : 64 : 17 ; 2647 : 84 ; ; 2753 : 7 ; ; ; ; ; ; ; ; ; ; ; : 33 ; ; ; 2787 : 5 ; 2794 : 1 ; 2797 : 4 ; 2803 : 19 ; 2753 : 70 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 23 : 1 : -1 ; 8 : 100 ; 33 : 3 ; 30 : 1 ; 27 : 10 ; 8 : 100 ; ; ; 99 : 1 ; 94 : 3 ; 90 : 11 ; 84 : 18 ; 80 : 1 ; 75 : 3 ; 71 : 11 ; 64 : 39 ; 52 : 2 ; 49 : 1 ; 45 : 10 ; 40 : 15 ; ; 8 : 100 ; ; ; 12 : 14 ; 2753 : 70 : 17 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 2753 : 70 : 17 ; ; ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 45 : 16 ; 42 : 1 ; 39 ; 24 : 38 ; 77 : 16 ; 74 : 1 ; 67 : 27 ; 5 : 2 ; 2753 : 70 : 17 ; ; ; ; ; ; ; 13 : 2 : -1 ; 8 : 3 ; 5 : 11 ; 2 : 2 ; ; ; 29 : 1 ; 26 ; 19 : 12 ; 2 : 2 ; 2753 : 70 : 17 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2745 : 115 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2471 : 400 ; 1890 : 987 ; ; ; ; : : : o ; 626 : 248 : 5 : - ; 359 : 7 : 7 ; ; ; ; ; ; ; ; ; ; ; 337 : 30 ; ; : 10 ; : 30 ; ; ; 329 : 81 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 791 : 1 : 5 ; 776 : 11 ; : 16 ; ; ; ; 768 : 65 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 856 : 11 ; 843 : 10 ; ; : 24 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 626 : 248 ; : : : o ; 1368 : 158 : 17 : - ; 359 : 7 : 7 ; ; ; ; ; ; ; ; ; ; ; 337 : 30 ; ; : 10 ; : 30 ; ; ; 329 : 81 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1509 : 10 : 17 ; 1477 : 11 ; : 18 ; 1489 : 5 ; 1477 : 18 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : 29 ; ; : 42 ; ; ; ; 1368 : 158 ; ; : : : o ; 339 : 50 : : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 3463 : 116 : : - ; 3525 : 4 ; 3565 : 6 ; 3559 : 3 ; : 12 ; ; ; ; ; ; ; ; 3552 : 3 ; : 20 ; 3545 : 27 ; ; 3463 : 116 ; : : : o ; 513 : 50 : : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 395 : 40 : : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 434 : 300 : 7 : - ; 648 : 1 ; 636 : 7 ; ; ; ; ; ; ; ; ; ; ; 628 : 21 ; ; ; 620 : 62 ; ;
"source" : "pragma solidity 0.4.24;\nimport \"../Module.sol\";\nimport \"../ModuleManager.sol\";\nimport \"../OwnerManager.sol\";\nimport \"../Enum.sol\";\n\n\n/// @title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n/// @author Stefan George - <stefan@gnosis.pm>\ncontract DailyLimitModule is Module {\n\n string public constant NAME = \"Daily Limit Module\";\n string public constant VERSION = \"0.0.1\";\n\n // dailyLimits mapping maps token address to daily limit settings.\n mapping (address => DailyLimit) public dailyLimits;\n\n struct DailyLimit {\n uint256 dailyLimit;\n uint256 spentToday;\n uint256 lastDay;\n }\n\n /// @dev Setup function sets initial storage of contract.\n /// @param tokens List of token addresses. Ether is represented with address 0x0.\n /// @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether).\n function setup(address[] tokens, uint256[] _dailyLimits)\n public\n {\n setManager();\n for (uint256 i = 0; i < tokens.length; i++)\n dailyLimits[tokens[i]].dailyLimit = _dailyLimits[i];\n }\n\n /// @dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n /// @param token Token contract address.\n /// @param dailyLimit Daily limit in smallest token unit.\n function changeDailyLimit(address token, uint256 dailyLimit)\n public\n authorized\n {\n dailyLimits[token].dailyLimit = dailyLimit;\n }\n\n /// @dev Returns if Safe transaction is a valid daily limit transaction.\n /// @param token Address of the token that should be transfered (0 for Ether)\n /// @param to Address to which the tokens should be transfered\n /// @param amount Amount of tokens (or Ether) that should be transfered\n /// @return Returns if transaction can be executed.\n function executeDailyLimit(address token, address to, uint256 amount)\n public\n {\n // Only Safe owners are allowed to execute daily limit transactions.\n require(OwnerManager(manager).isOwner(msg.sender), \"Method can only be called by an owner\");\n require(to != 0, \"Invalid to address provided\");\n require(amount > 0, \"Invalid amount provided\");\n // Validate that transfer is not exceeding daily limit.\n require(isUnderLimit(token, amount), \"Daily limit has been reached\");\n dailyLimits[token].spentToday += amount;\n if (token == 0) {\n require(manager.execTransactionFromModule(to, amount, \"\", Enum.Operation.Call), \"Could not execute ether transfer\");\n } else {\n bytes memory data = abi.encodeWithSignature(\"transfer(address,uint256)\", to, amount);\n require(manager.execTransactionFromModule(token, 0, data, Enum.Operation.Call), \"Could not execute token transfer\");\n }\n }\n\n function isUnderLimit(address token, uint256 amount)\n internal\n returns (bool)\n {\n DailyLimit storage dailyLimit = dailyLimits[token];\n if (today() > dailyLimit.lastDay) {\n dailyLimit.lastDay = today();\n dailyLimit.spentToday = 0;\n }\n if ( dailyLimit.spentToday + amount <= dailyLimit.dailyLimit\n && dailyLimit.spentToday + amount > dailyLimit.spentToday)\n return true;\n return false;\n }\n\n /// @dev Returns last midnight as Unix timestamp.\n /// @return Unix timestamp.\n function today()\n public\n view\n returns (uint)\n {\n return now - (now % 1 days);\n }\n}\n" ,
"sourcePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol" ,
"ast" : {
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol" ,
"exportedSymbols" : {
"DailyLimitModule" : [
2014
]
} ,
"id" : 2015 ,
"nodeType" : "SourceUnit" ,
"nodes" : [
{
"id" : 1777 ,
"literals" : [
"solidity" ,
"0.4" ,
".24"
] ,
"nodeType" : "PragmaDirective" ,
"src" : "0:23:17"
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol" ,
"file" : "../Module.sol" ,
"id" : 1778 ,
"nodeType" : "ImportDirective" ,
"scope" : 2015 ,
"sourceUnit" : 763 ,
"src" : "24:23:17" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol" ,
"file" : "../ModuleManager.sol" ,
"id" : 1779 ,
"nodeType" : "ImportDirective" ,
"scope" : 2015 ,
"sourceUnit" : 1119 ,
"src" : "48:30:17" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol" ,
"file" : "../OwnerManager.sol" ,
"id" : 1780 ,
"nodeType" : "ImportDirective" ,
"scope" : 2015 ,
"sourceUnit" : 1505 ,
"src" : "79:29:17" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol" ,
"file" : "../Enum.sol" ,
"id" : 1781 ,
"nodeType" : "ImportDirective" ,
"scope" : 2015 ,
"sourceUnit" : 31 ,
"src" : "109:21:17" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
"id" : 1782 ,
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 762 ,
"src" : "325:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"id" : 1783 ,
"nodeType" : "InheritanceSpecifier" ,
"src" : "325:6:17"
}
] ,
"contractDependencies" : [
662 ,
762 ,
1654
] ,
"contractKind" : "contract" ,
"documentation" : "@title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n @author Stefan George - <stefan@gnosis.pm>" ,
"fullyImplemented" : true ,
"id" : 2014 ,
"linearizedBaseContracts" : [
2014 ,
762 ,
662 ,
1654
] ,
"name" : "DailyLimitModule" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"constant" : true ,
"id" : 1786 ,
"name" : "NAME" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2014 ,
"src" : "339:50:17" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
} ,
"typeName" : {
"id" : 1784 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "339:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "4461696c79204c696d6974204d6f64756c65" ,
"id" : 1785 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "369:20:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_821ea27acfbc77b49f7a021dbe2eb92017d46b8bdda0bff9901cbc8ee143ceb3" ,
"typeString" : "literal_string \"Daily Limit Module\""
} ,
"value" : "Daily Limit Module"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
"id" : 1789 ,
"name" : "VERSION" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2014 ,
"src" : "395:40:17" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
} ,
"typeName" : {
"id" : 1787 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "395:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "302e302e31" ,
"id" : 1788 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "428:7:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885" ,
"typeString" : "literal_string \"0.0.1\""
} ,
"value" : "0.0.1"
} ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1793 ,
"name" : "dailyLimits" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2014 ,
"src" : "513:50:17" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1800_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitModule.DailyLimit)"
} ,
"typeName" : {
"id" : 1792 ,
"keyType" : {
"id" : 1790 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "522:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "513:31:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1800_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitModule.DailyLimit)"
} ,
"valueType" : {
"contractScope" : null ,
"id" : 1791 ,
"name" : "DailyLimit" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1800 ,
"src" : "533:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"canonicalName" : "DailyLimitModule.DailyLimit" ,
"id" : 1800 ,
"members" : [
{
"constant" : false ,
"id" : 1795 ,
"name" : "dailyLimit" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1800 ,
"src" : "598:18:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1794 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "598:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1797 ,
"name" : "spentToday" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1800 ,
"src" : "626:18:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1796 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "626:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1799 ,
"name" : "lastDay" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1800 ,
"src" : "654:15:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1798 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "654:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"name" : "DailyLimit" ,
"nodeType" : "StructDefinition" ,
"scope" : 2014 ,
"src" : "570:106:17" ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1835 ,
"nodeType" : "Block" ,
"src" : "994:146:17" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 1809 ,
"name" : "setManager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 761 ,
"src" : "1004:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$__$returns$__$" ,
"typeString" : "function ()"
}
} ,
"id" : 1810 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1004:12:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1811 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1004:12:17"
} ,
{
"body" : {
"expression" : {
"argumentTypes" : null ,
"id" : 1832 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1823 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1793 ,
"src" : "1082:11:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1800_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
}
} ,
"id" : 1827 ,
"indexExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1824 ,
"name" : "tokens" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1803 ,
"src" : "1094:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1826 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1825 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1813 ,
"src" : "1101:1:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1094:9:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1082:22:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage ref"
}
} ,
"id" : 1828 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "dailyLimit" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1795 ,
"src" : "1082:33:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1829 ,
"name" : "_dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1806 ,
"src" : "1118:12:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_memory_ptr" ,
"typeString" : "uint256[] memory"
}
} ,
"id" : 1831 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1830 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1813 ,
"src" : "1131:1:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1118:15:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "1082:51:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1833 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1082:51:17"
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1819 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1816 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1813 ,
"src" : "1046:1:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1817 ,
"name" : "tokens" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1803 ,
"src" : "1050:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1818 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "1050:13:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "1046:17:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1834 ,
"initializationExpression" : {
"assignments" : [
1813
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1813 ,
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1836 ,
"src" : "1031:9:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1812 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1031:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1815 ,
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1814 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1043:1:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "1031:13:17"
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
"id" : 1821 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "1065:3:17" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1820 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1813 ,
"src" : "1065:1:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1822 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1065:3:17"
} ,
"nodeType" : "ForStatement" ,
"src" : "1026:107:17"
}
]
} ,
"documentation" : "@dev Setup function sets initial storage of contract.\n @param tokens List of token addresses. Ether is represented with address 0x0.\n @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether)." ,
"id" : 1836 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "setup" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1807 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1803 ,
"name" : "tokens" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1836 ,
"src" : "933:16:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
"id" : 1801 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "933:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1802 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "933:9:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1806 ,
"name" : "_dailyLimits" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1836 ,
"src" : "951:22:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_memory_ptr" ,
"typeString" : "uint256[]"
} ,
"typeName" : {
"baseType" : {
"id" : 1804 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "951:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1805 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "951:9:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_storage_ptr" ,
"typeString" : "uint256[]"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "932:42:17"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1808 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "994:0:17"
} ,
"scope" : 2014 ,
"src" : "918:222:17" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1852 ,
"nodeType" : "Block" ,
"src" : "1467:59:17" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1850 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1845 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1793 ,
"src" : "1477:11:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1800_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
}
} ,
"id" : 1847 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1846 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1838 ,
"src" : "1489:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1477:18:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage ref"
}
} ,
"id" : 1848 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "dailyLimit" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1795 ,
"src" : "1477:29:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1849 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1840 ,
"src" : "1509:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "1477:42:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1851 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1477:42:17"
}
]
} ,
"documentation" : "@dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n @param token Token contract address.\n @param dailyLimit Daily limit in smallest token unit." ,
"id" : 1853 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
"id" : 1843 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1842 ,
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 741 ,
"src" : "1452:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "1452:10:17"
}
] ,
"name" : "changeDailyLimit" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1841 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1838 ,
"name" : "token" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1853 ,
"src" : "1394:13:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1837 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1394:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1840 ,
"name" : "dailyLimit" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1853 ,
"src" : "1409:18:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1839 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1409:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1393:35:17"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1844 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1467:0:17"
} ,
"scope" : 2014 ,
"src" : "1368:158:17" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1943 ,
"nodeType" : "Block" ,
"src" : "1979:898:17" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1867 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2654 ,
"src" : "2104:3:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 1868 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2104:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
] ,
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1864 ,
"name" : "manager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 727 ,
"src" : "2087:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_ModuleManager_$1118" ,
"typeString" : "contract ModuleManager"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_ModuleManager_$1118" ,
"typeString" : "contract ModuleManager"
}
] ,
"id" : 1863 ,
"name" : "OwnerManager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1504 ,
"src" : "2074:12:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_OwnerManager_$1504_$" ,
"typeString" : "type(contract OwnerManager)"
}
} ,
"id" : 1865 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2074:21:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_OwnerManager_$1504" ,
"typeString" : "contract OwnerManager"
}
} ,
"id" : 1866 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "isOwner" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1454 ,
"src" : "2074:29:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_external_view$_t_address_$returns$_t_bool_$" ,
"typeString" : "function (address) view external returns (bool)"
}
} ,
"id" : 1869 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2074:41:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572" ,
"id" : 1870 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2117:39:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640" ,
"typeString" : "literal_string \"Method can only be called by an owner\""
} ,
"value" : "Method can only be called by an owner"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640" ,
"typeString" : "literal_string \"Method can only be called by an owner\""
}
] ,
"id" : 1862 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2066:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 1871 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2066:91:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1872 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2066:91:17"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1876 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1874 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1857 ,
"src" : "2175:2:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1875 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2181:1:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2175:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c696420746f20616464726573732070726f7669646564" ,
"id" : 1877 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2184:29:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1" ,
"typeString" : "literal_string \"Invalid to address provided\""
} ,
"value" : "Invalid to address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1" ,
"typeString" : "literal_string \"Invalid to address provided\""
}
] ,
"id" : 1873 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2167:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 1878 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2167:47:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1879 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2167:47:17"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1883 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1881 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1859 ,
"src" : "2232:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1882 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2241:1:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2232:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c696420616d6f756e742070726f7669646564" ,
"id" : 1884 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2244:25:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f" ,
"typeString" : "literal_string \"Invalid amount provided\""
} ,
"value" : "Invalid amount provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f" ,
"typeString" : "literal_string \"Invalid amount provided\""
}
] ,
"id" : 1880 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2224:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 1885 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2224:46:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1886 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2224:46:17"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1889 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1855 ,
"src" : "2365:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 1890 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1859 ,
"src" : "2372:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 1888 ,
"name" : "isUnderLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2000 ,
"src" : "2352:12:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$" ,
"typeString" : "function (address,uint256) returns (bool)"
}
} ,
"id" : 1891 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2352:27:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4461696c79206c696d697420686173206265656e2072656163686564" ,
"id" : 1892 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2381:30:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905" ,
"typeString" : "literal_string \"Daily limit has been reached\""
} ,
"value" : "Daily limit has been reached"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905" ,
"typeString" : "literal_string \"Daily limit has been reached\""
}
] ,
"id" : 1887 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2344:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 1893 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2344:68:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1894 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2344:68:17"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1900 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1895 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1793 ,
"src" : "2422:11:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1800_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
}
} ,
"id" : 1897 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1896 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1855 ,
"src" : "2434:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2422:18:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage ref"
}
} ,
"id" : 1898 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1797 ,
"src" : "2422:29:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "+=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1899 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1859 ,
"src" : "2455:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "2422:39:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1901 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2422:39:17"
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1904 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1902 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1855 ,
"src" : "2475:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1903 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2484:1:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2475:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : {
"id" : 1941 ,
"nodeType" : "Block" ,
"src" : "2633:238:17" ,
"statements" : [
{
"assignments" : [
1920
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1920 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1944 ,
"src" : "2647:17:17" ,
"stateVariable" : false ,
"storageLocation" : "memory" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
"id" : 1919 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2647:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1927 ,
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "7472616e7366657228616464726573732c75696e7432353629" ,
"id" : 1923 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2691:27:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b" ,
"typeString" : "literal_string \"transfer(address,uint256)\""
} ,
"value" : "transfer(address,uint256)"
} ,
{
"argumentTypes" : null ,
"id" : 1924 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1857 ,
"src" : "2720:2:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 1925 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1859 ,
"src" : "2724:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b" ,
"typeString" : "literal_string \"transfer(address,uint256)\""
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
"id" : 1921 ,
"name" : "abi" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2641 ,
"src" : "2667:3:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_abi" ,
"typeString" : "abi"
}
} ,
"id" : 1922 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "encodeWithSignature" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2667:23:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$" ,
"typeString" : "function (string memory) pure returns (bytes memory)"
}
} ,
"id" : 1926 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2667:64:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "2647:84:17"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1931 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1855 ,
"src" : "2787:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1932 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2794:1:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
{
"argumentTypes" : null ,
"id" : 1933 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1920 ,
"src" : "2797:4:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1934 ,
"name" : "Enum" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 30 ,
"src" : "2803:4:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_Enum_$30_$" ,
"typeString" : "type(contract Enum)"
}
} ,
"id" : 1935 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 29 ,
"src" : "2803:14:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$29_$" ,
"typeString" : "type(enum Enum.Operation)"
}
} ,
"id" : 1936 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "Call" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2803:19:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
{
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
] ,
"expression" : {
"argumentTypes" : null ,
"id" : 1929 ,
"name" : "manager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 727 ,
"src" : "2753:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_ModuleManager_$1118" ,
"typeString" : "contract ModuleManager"
}
} ,
"id" : 1930 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "execTransactionFromModule" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 945 ,
"src" : "2753:33:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$" ,
"typeString" : "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)"
}
} ,
"id" : 1937 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2753:70:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "436f756c64206e6f74206578656375746520746f6b656e207472616e73666572" ,
"id" : 1938 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2825:34:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709" ,
"typeString" : "literal_string \"Could not execute token transfer\""
} ,
"value" : "Could not execute token transfer"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709" ,
"typeString" : "literal_string \"Could not execute token transfer\""
}
] ,
"id" : 1928 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2745:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 1939 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2745:115:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1940 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2745:115:17"
}
]
} ,
"id" : 1942 ,
"nodeType" : "IfStatement" ,
"src" : "2471:400:17" ,
"trueBody" : {
"id" : 1918 ,
"nodeType" : "Block" ,
"src" : "2487:140:17" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1908 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1857 ,
"src" : "2543:2:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 1909 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1859 ,
"src" : "2547:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "" ,
"id" : 1910 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2555:2:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" ,
"typeString" : "literal_string \"\""
} ,
"value" : ""
} ,
{
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1911 ,
"name" : "Enum" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 30 ,
"src" : "2559:4:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_Enum_$30_$" ,
"typeString" : "type(contract Enum)"
}
} ,
"id" : 1912 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 29 ,
"src" : "2559:14:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$29_$" ,
"typeString" : "type(enum Enum.Operation)"
}
} ,
"id" : 1913 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "Call" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2559:19:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" ,
"typeString" : "literal_string \"\""
} ,
{
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
] ,
"expression" : {
"argumentTypes" : null ,
"id" : 1906 ,
"name" : "manager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 727 ,
"src" : "2509:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_ModuleManager_$1118" ,
"typeString" : "contract ModuleManager"
}
} ,
"id" : 1907 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "execTransactionFromModule" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 945 ,
"src" : "2509:33:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$" ,
"typeString" : "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)"
}
} ,
"id" : 1914 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2509:70:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "436f756c64206e6f742065786563757465206574686572207472616e73666572" ,
"id" : 1915 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2581:34:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586" ,
"typeString" : "literal_string \"Could not execute ether transfer\""
} ,
"value" : "Could not execute ether transfer"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586" ,
"typeString" : "literal_string \"Could not execute ether transfer\""
}
] ,
"id" : 1905 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2501:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 1916 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2501:115:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1917 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2501:115:17"
}
]
}
}
]
} ,
"documentation" : "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param token Address of the token that should be transfered (0 for Ether)\n @param to Address to which the tokens should be transfered\n @param amount Amount of tokens (or Ether) that should be transfered\n @return Returns if transaction can be executed." ,
"id" : 1944 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "executeDailyLimit" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1860 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1855 ,
"name" : "token" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1944 ,
"src" : "1917:13:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1854 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1917:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1857 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1944 ,
"src" : "1932:10:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1856 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1932:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1859 ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1944 ,
"src" : "1944:14:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1858 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1944:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1916:43:17"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1861 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1979:0:17"
} ,
"scope" : 2014 ,
"src" : "1890:987:17" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1999 ,
"nodeType" : "Block" ,
"src" : "2980:391:17" ,
"statements" : [
{
"assignments" : [
1954
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1954 ,
"name" : "dailyLimit" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2000 ,
"src" : "2990:29:17" ,
"stateVariable" : false ,
"storageLocation" : "storage" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1953 ,
"name" : "DailyLimit" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1800 ,
"src" : "2990:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1958 ,
"initialValue" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1955 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1793 ,
"src" : "3022:11:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1800_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
}
} ,
"id" : 1957 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1956 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1946 ,
"src" : "3034:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3022:18:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage ref"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "2990:50:17"
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1963 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 1959 ,
"name" : "today" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2013 ,
"src" : "3054:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
"id" : 1960 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3054:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1961 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1954 ,
"src" : "3064:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage pointer"
}
} ,
"id" : 1962 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "lastDay" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1799 ,
"src" : "3064:18:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3054:28:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1978 ,
"nodeType" : "IfStatement" ,
"src" : "3050:126:17" ,
"trueBody" : {
"id" : 1977 ,
"nodeType" : "Block" ,
"src" : "3084:92:17" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1969 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1964 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1954 ,
"src" : "3098:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage pointer"
}
} ,
"id" : 1966 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "lastDay" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1799 ,
"src" : "3098:18:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 1967 ,
"name" : "today" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2013 ,
"src" : "3119:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
"id" : 1968 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3119:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3098:28:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1970 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3098:28:17"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1975 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1971 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1954 ,
"src" : "3140:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage pointer"
}
} ,
"id" : 1973 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1797 ,
"src" : "3140:21:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1974 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3164:1:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3140:25:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1976 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3140:25:17"
}
]
}
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"id" : 1993 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1985 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1982 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1979 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1954 ,
"src" : "3192:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage pointer"
}
} ,
"id" : 1980 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1797 ,
"src" : "3192:21:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "+" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1981 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1948 ,
"src" : "3216:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3192:30:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<=" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1983 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1954 ,
"src" : "3226:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage pointer"
}
} ,
"id" : 1984 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "dailyLimit" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1795 ,
"src" : "3226:21:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3192:55:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1992 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1989 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1986 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1954 ,
"src" : "3263:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage pointer"
}
} ,
"id" : 1987 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1797 ,
"src" : "3263:21:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "+" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1988 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1948 ,
"src" : "3287:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3263:30:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1990 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1954 ,
"src" : "3296:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage pointer"
}
} ,
"id" : 1991 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1797 ,
"src" : "3296:21:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3263:54:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3192:125:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1996 ,
"nodeType" : "IfStatement" ,
"src" : "3185:157:17" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1994 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3338:4:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"functionReturnParameters" : 1952 ,
"id" : 1995 ,
"nodeType" : "Return" ,
"src" : "3331:11:17"
}
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
"id" : 1997 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3359:5:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
"functionReturnParameters" : 1952 ,
"id" : 1998 ,
"nodeType" : "Return" ,
"src" : "3352:12:17"
}
]
} ,
"documentation" : null ,
"id" : 2000 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "isUnderLimit" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1949 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1946 ,
"name" : "token" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2000 ,
"src" : "2905:13:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1945 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2905:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1948 ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2000 ,
"src" : "2920:14:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1947 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2920:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2904:31:17"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1952 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1951 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2000 ,
"src" : "2970:4:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 1950 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2970:4:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2969:6:17"
} ,
"scope" : 2014 ,
"src" : "2883:488:17" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 2012 ,
"nodeType" : "Block" ,
"src" : "3535:44:17" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 2010 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 2005 ,
"name" : "now" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2656 ,
"src" : "3552:3:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "-" ,
"rightExpression" : {
"argumentTypes" : null ,
"components" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 2008 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 2006 ,
"name" : "now" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2656 ,
"src" : "3559:3:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "%" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "31" ,
"id" : 2007 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3565:6:17" ,
"subdenomination" : "days" ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_86400_by_1" ,
"typeString" : "int_const 86400"
} ,
"value" : "1"
} ,
"src" : "3559:12:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"id" : 2009 ,
"isConstant" : false ,
"isInlineArray" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "TupleExpression" ,
"src" : "3558:14:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3552:20:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"functionReturnParameters" : 2004 ,
"id" : 2011 ,
"nodeType" : "Return" ,
"src" : "3545:27:17"
}
]
} ,
"documentation" : "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp." ,
"id" : 2013 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "today" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 2001 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "3477:2:17"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 2004 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 2003 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2013 ,
"src" : "3525:4:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 2002 ,
"name" : "uint" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3525:4:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3524:6:17"
} ,
"scope" : 2014 ,
"src" : "3463:116:17" ,
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
}
] ,
"scope" : 2015 ,
"src" : "296:3285:17"
}
] ,
"src" : "0:3582:17"
} ,
"legacyAST" : {
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol" ,
"exportedSymbols" : {
"DailyLimitModule" : [
2014
]
} ,
"id" : 2015 ,
"nodeType" : "SourceUnit" ,
"nodes" : [
{
"id" : 1777 ,
"literals" : [
"solidity" ,
"0.4" ,
".24"
] ,
"nodeType" : "PragmaDirective" ,
"src" : "0:23:17"
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol" ,
"file" : "../Module.sol" ,
"id" : 1778 ,
"nodeType" : "ImportDirective" ,
"scope" : 2015 ,
"sourceUnit" : 763 ,
"src" : "24:23:17" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol" ,
"file" : "../ModuleManager.sol" ,
"id" : 1779 ,
"nodeType" : "ImportDirective" ,
"scope" : 2015 ,
"sourceUnit" : 1119 ,
"src" : "48:30:17" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol" ,
"file" : "../OwnerManager.sol" ,
"id" : 1780 ,
"nodeType" : "ImportDirective" ,
"scope" : 2015 ,
"sourceUnit" : 1505 ,
"src" : "79:29:17" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol" ,
"file" : "../Enum.sol" ,
"id" : 1781 ,
"nodeType" : "ImportDirective" ,
"scope" : 2015 ,
"sourceUnit" : 31 ,
"src" : "109:21:17" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
"id" : 1782 ,
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 762 ,
"src" : "325:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"id" : 1783 ,
"nodeType" : "InheritanceSpecifier" ,
"src" : "325:6:17"
}
] ,
"contractDependencies" : [
662 ,
762 ,
1654
] ,
"contractKind" : "contract" ,
"documentation" : "@title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n @author Stefan George - <stefan@gnosis.pm>" ,
"fullyImplemented" : true ,
"id" : 2014 ,
"linearizedBaseContracts" : [
2014 ,
762 ,
662 ,
1654
] ,
"name" : "DailyLimitModule" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"constant" : true ,
"id" : 1786 ,
"name" : "NAME" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2014 ,
"src" : "339:50:17" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
} ,
"typeName" : {
"id" : 1784 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "339:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "4461696c79204c696d6974204d6f64756c65" ,
"id" : 1785 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "369:20:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_821ea27acfbc77b49f7a021dbe2eb92017d46b8bdda0bff9901cbc8ee143ceb3" ,
"typeString" : "literal_string \"Daily Limit Module\""
} ,
"value" : "Daily Limit Module"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
"id" : 1789 ,
"name" : "VERSION" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2014 ,
"src" : "395:40:17" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
} ,
"typeName" : {
"id" : 1787 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "395:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "302e302e31" ,
"id" : 1788 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "428:7:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885" ,
"typeString" : "literal_string \"0.0.1\""
} ,
"value" : "0.0.1"
} ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1793 ,
"name" : "dailyLimits" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2014 ,
"src" : "513:50:17" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1800_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitModule.DailyLimit)"
} ,
"typeName" : {
"id" : 1792 ,
"keyType" : {
"id" : 1790 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "522:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "513:31:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1800_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitModule.DailyLimit)"
} ,
"valueType" : {
"contractScope" : null ,
"id" : 1791 ,
"name" : "DailyLimit" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1800 ,
"src" : "533:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"canonicalName" : "DailyLimitModule.DailyLimit" ,
"id" : 1800 ,
"members" : [
{
"constant" : false ,
"id" : 1795 ,
"name" : "dailyLimit" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1800 ,
"src" : "598:18:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1794 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "598:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1797 ,
"name" : "spentToday" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1800 ,
"src" : "626:18:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1796 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "626:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1799 ,
"name" : "lastDay" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1800 ,
"src" : "654:15:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1798 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "654:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"name" : "DailyLimit" ,
"nodeType" : "StructDefinition" ,
"scope" : 2014 ,
"src" : "570:106:17" ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1835 ,
"nodeType" : "Block" ,
"src" : "994:146:17" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 1809 ,
"name" : "setManager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 761 ,
"src" : "1004:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$__$returns$__$" ,
"typeString" : "function ()"
}
} ,
"id" : 1810 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1004:12:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1811 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1004:12:17"
} ,
{
"body" : {
"expression" : {
"argumentTypes" : null ,
"id" : 1832 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1823 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1793 ,
"src" : "1082:11:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1800_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
}
} ,
"id" : 1827 ,
"indexExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1824 ,
"name" : "tokens" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1803 ,
"src" : "1094:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1826 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1825 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1813 ,
"src" : "1101:1:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1094:9:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1082:22:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage ref"
}
} ,
"id" : 1828 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "dailyLimit" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1795 ,
"src" : "1082:33:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1829 ,
"name" : "_dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1806 ,
"src" : "1118:12:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_memory_ptr" ,
"typeString" : "uint256[] memory"
}
} ,
"id" : 1831 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1830 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1813 ,
"src" : "1131:1:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1118:15:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "1082:51:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1833 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1082:51:17"
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1819 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1816 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1813 ,
"src" : "1046:1:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1817 ,
"name" : "tokens" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1803 ,
"src" : "1050:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1818 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "1050:13:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "1046:17:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1834 ,
"initializationExpression" : {
"assignments" : [
1813
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1813 ,
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1836 ,
"src" : "1031:9:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1812 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1031:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1815 ,
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1814 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1043:1:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "1031:13:17"
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
"id" : 1821 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "1065:3:17" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1820 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1813 ,
"src" : "1065:1:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1822 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1065:3:17"
} ,
"nodeType" : "ForStatement" ,
"src" : "1026:107:17"
}
]
} ,
"documentation" : "@dev Setup function sets initial storage of contract.\n @param tokens List of token addresses. Ether is represented with address 0x0.\n @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether)." ,
"id" : 1836 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "setup" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1807 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1803 ,
"name" : "tokens" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1836 ,
"src" : "933:16:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
"id" : 1801 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "933:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1802 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "933:9:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1806 ,
"name" : "_dailyLimits" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1836 ,
"src" : "951:22:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_memory_ptr" ,
"typeString" : "uint256[]"
} ,
"typeName" : {
"baseType" : {
"id" : 1804 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "951:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1805 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "951:9:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_uint256_$dyn_storage_ptr" ,
"typeString" : "uint256[]"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "932:42:17"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1808 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "994:0:17"
} ,
"scope" : 2014 ,
"src" : "918:222:17" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1852 ,
"nodeType" : "Block" ,
"src" : "1467:59:17" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1850 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1845 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1793 ,
"src" : "1477:11:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1800_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
}
} ,
"id" : 1847 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1846 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1838 ,
"src" : "1489:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1477:18:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage ref"
}
} ,
"id" : 1848 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "dailyLimit" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1795 ,
"src" : "1477:29:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1849 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1840 ,
"src" : "1509:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "1477:42:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1851 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1477:42:17"
}
]
} ,
"documentation" : "@dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n @param token Token contract address.\n @param dailyLimit Daily limit in smallest token unit." ,
"id" : 1853 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
"id" : 1843 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1842 ,
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 741 ,
"src" : "1452:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "1452:10:17"
}
] ,
"name" : "changeDailyLimit" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1841 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1838 ,
"name" : "token" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1853 ,
"src" : "1394:13:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1837 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1394:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1840 ,
"name" : "dailyLimit" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1853 ,
"src" : "1409:18:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1839 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1409:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1393:35:17"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1844 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1467:0:17"
} ,
"scope" : 2014 ,
"src" : "1368:158:17" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1943 ,
"nodeType" : "Block" ,
"src" : "1979:898:17" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1867 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2654 ,
"src" : "2104:3:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 1868 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2104:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
] ,
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1864 ,
"name" : "manager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 727 ,
"src" : "2087:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_ModuleManager_$1118" ,
"typeString" : "contract ModuleManager"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_ModuleManager_$1118" ,
"typeString" : "contract ModuleManager"
}
] ,
"id" : 1863 ,
"name" : "OwnerManager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1504 ,
"src" : "2074:12:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_OwnerManager_$1504_$" ,
"typeString" : "type(contract OwnerManager)"
}
} ,
"id" : 1865 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2074:21:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_OwnerManager_$1504" ,
"typeString" : "contract OwnerManager"
}
} ,
"id" : 1866 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "isOwner" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1454 ,
"src" : "2074:29:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_external_view$_t_address_$returns$_t_bool_$" ,
"typeString" : "function (address) view external returns (bool)"
}
} ,
"id" : 1869 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2074:41:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572" ,
"id" : 1870 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2117:39:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640" ,
"typeString" : "literal_string \"Method can only be called by an owner\""
} ,
"value" : "Method can only be called by an owner"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640" ,
"typeString" : "literal_string \"Method can only be called by an owner\""
}
] ,
"id" : 1862 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2066:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 1871 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2066:91:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1872 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2066:91:17"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1876 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1874 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1857 ,
"src" : "2175:2:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1875 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2181:1:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2175:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c696420746f20616464726573732070726f7669646564" ,
"id" : 1877 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2184:29:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1" ,
"typeString" : "literal_string \"Invalid to address provided\""
} ,
"value" : "Invalid to address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1" ,
"typeString" : "literal_string \"Invalid to address provided\""
}
] ,
"id" : 1873 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2167:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 1878 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2167:47:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1879 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2167:47:17"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1883 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1881 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1859 ,
"src" : "2232:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1882 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2241:1:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2232:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c696420616d6f756e742070726f7669646564" ,
"id" : 1884 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2244:25:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f" ,
"typeString" : "literal_string \"Invalid amount provided\""
} ,
"value" : "Invalid amount provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f" ,
"typeString" : "literal_string \"Invalid amount provided\""
}
] ,
"id" : 1880 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2224:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 1885 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2224:46:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1886 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2224:46:17"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1889 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1855 ,
"src" : "2365:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 1890 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1859 ,
"src" : "2372:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 1888 ,
"name" : "isUnderLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2000 ,
"src" : "2352:12:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$" ,
"typeString" : "function (address,uint256) returns (bool)"
}
} ,
"id" : 1891 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2352:27:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4461696c79206c696d697420686173206265656e2072656163686564" ,
"id" : 1892 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2381:30:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905" ,
"typeString" : "literal_string \"Daily limit has been reached\""
} ,
"value" : "Daily limit has been reached"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905" ,
"typeString" : "literal_string \"Daily limit has been reached\""
}
] ,
"id" : 1887 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2344:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 1893 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2344:68:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1894 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2344:68:17"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1900 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1895 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1793 ,
"src" : "2422:11:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1800_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
}
} ,
"id" : 1897 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1896 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1855 ,
"src" : "2434:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2422:18:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage ref"
}
} ,
"id" : 1898 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1797 ,
"src" : "2422:29:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "+=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1899 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1859 ,
"src" : "2455:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "2422:39:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1901 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2422:39:17"
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1904 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1902 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1855 ,
"src" : "2475:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1903 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2484:1:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2475:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : {
"id" : 1941 ,
"nodeType" : "Block" ,
"src" : "2633:238:17" ,
"statements" : [
{
"assignments" : [
1920
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1920 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1944 ,
"src" : "2647:17:17" ,
"stateVariable" : false ,
"storageLocation" : "memory" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
"id" : 1919 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2647:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1927 ,
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "7472616e7366657228616464726573732c75696e7432353629" ,
"id" : 1923 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2691:27:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b" ,
"typeString" : "literal_string \"transfer(address,uint256)\""
} ,
"value" : "transfer(address,uint256)"
} ,
{
"argumentTypes" : null ,
"id" : 1924 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1857 ,
"src" : "2720:2:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 1925 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1859 ,
"src" : "2724:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b" ,
"typeString" : "literal_string \"transfer(address,uint256)\""
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
"id" : 1921 ,
"name" : "abi" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2641 ,
"src" : "2667:3:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_abi" ,
"typeString" : "abi"
}
} ,
"id" : 1922 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "encodeWithSignature" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2667:23:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$" ,
"typeString" : "function (string memory) pure returns (bytes memory)"
}
} ,
"id" : 1926 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2667:64:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "2647:84:17"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1931 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1855 ,
"src" : "2787:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1932 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2794:1:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
{
"argumentTypes" : null ,
"id" : 1933 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1920 ,
"src" : "2797:4:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1934 ,
"name" : "Enum" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 30 ,
"src" : "2803:4:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_Enum_$30_$" ,
"typeString" : "type(contract Enum)"
}
} ,
"id" : 1935 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 29 ,
"src" : "2803:14:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$29_$" ,
"typeString" : "type(enum Enum.Operation)"
}
} ,
"id" : 1936 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "Call" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2803:19:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
{
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
] ,
"expression" : {
"argumentTypes" : null ,
"id" : 1929 ,
"name" : "manager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 727 ,
"src" : "2753:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_ModuleManager_$1118" ,
"typeString" : "contract ModuleManager"
}
} ,
"id" : 1930 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "execTransactionFromModule" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 945 ,
"src" : "2753:33:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$" ,
"typeString" : "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)"
}
} ,
"id" : 1937 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2753:70:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "436f756c64206e6f74206578656375746520746f6b656e207472616e73666572" ,
"id" : 1938 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2825:34:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709" ,
"typeString" : "literal_string \"Could not execute token transfer\""
} ,
"value" : "Could not execute token transfer"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709" ,
"typeString" : "literal_string \"Could not execute token transfer\""
}
] ,
"id" : 1928 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2745:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 1939 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2745:115:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1940 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2745:115:17"
}
]
} ,
"id" : 1942 ,
"nodeType" : "IfStatement" ,
"src" : "2471:400:17" ,
"trueBody" : {
"id" : 1918 ,
"nodeType" : "Block" ,
"src" : "2487:140:17" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1908 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1857 ,
"src" : "2543:2:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 1909 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1859 ,
"src" : "2547:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "" ,
"id" : 1910 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2555:2:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" ,
"typeString" : "literal_string \"\""
} ,
"value" : ""
} ,
{
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1911 ,
"name" : "Enum" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 30 ,
"src" : "2559:4:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_Enum_$30_$" ,
"typeString" : "type(contract Enum)"
}
} ,
"id" : 1912 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 29 ,
"src" : "2559:14:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$29_$" ,
"typeString" : "type(enum Enum.Operation)"
}
} ,
"id" : 1913 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "Call" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2559:19:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" ,
"typeString" : "literal_string \"\""
} ,
{
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
] ,
"expression" : {
"argumentTypes" : null ,
"id" : 1906 ,
"name" : "manager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 727 ,
"src" : "2509:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_ModuleManager_$1118" ,
"typeString" : "contract ModuleManager"
}
} ,
"id" : 1907 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "execTransactionFromModule" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 945 ,
"src" : "2509:33:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$" ,
"typeString" : "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)"
}
} ,
"id" : 1914 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2509:70:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "436f756c64206e6f742065786563757465206574686572207472616e73666572" ,
"id" : 1915 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2581:34:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586" ,
"typeString" : "literal_string \"Could not execute ether transfer\""
} ,
"value" : "Could not execute ether transfer"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586" ,
"typeString" : "literal_string \"Could not execute ether transfer\""
}
] ,
"id" : 1905 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2501:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 1916 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2501:115:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1917 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2501:115:17"
}
]
}
}
]
} ,
"documentation" : "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param token Address of the token that should be transfered (0 for Ether)\n @param to Address to which the tokens should be transfered\n @param amount Amount of tokens (or Ether) that should be transfered\n @return Returns if transaction can be executed." ,
"id" : 1944 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "executeDailyLimit" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1860 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1855 ,
"name" : "token" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1944 ,
"src" : "1917:13:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1854 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1917:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1857 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1944 ,
"src" : "1932:10:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1856 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1932:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1859 ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1944 ,
"src" : "1944:14:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1858 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1944:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1916:43:17"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1861 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1979:0:17"
} ,
"scope" : 2014 ,
"src" : "1890:987:17" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1999 ,
"nodeType" : "Block" ,
"src" : "2980:391:17" ,
"statements" : [
{
"assignments" : [
1954
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1954 ,
"name" : "dailyLimit" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2000 ,
"src" : "2990:29:17" ,
"stateVariable" : false ,
"storageLocation" : "storage" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1953 ,
"name" : "DailyLimit" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1800 ,
"src" : "2990:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1958 ,
"initialValue" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1955 ,
"name" : "dailyLimits" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1793 ,
"src" : "3022:11:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_struct$_DailyLimit_$1800_storage_$" ,
"typeString" : "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
}
} ,
"id" : 1957 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1956 ,
"name" : "token" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1946 ,
"src" : "3034:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3022:18:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage ref"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "2990:50:17"
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1963 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 1959 ,
"name" : "today" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2013 ,
"src" : "3054:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
"id" : 1960 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3054:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1961 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1954 ,
"src" : "3064:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage pointer"
}
} ,
"id" : 1962 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "lastDay" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1799 ,
"src" : "3064:18:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3054:28:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1978 ,
"nodeType" : "IfStatement" ,
"src" : "3050:126:17" ,
"trueBody" : {
"id" : 1977 ,
"nodeType" : "Block" ,
"src" : "3084:92:17" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1969 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1964 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1954 ,
"src" : "3098:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage pointer"
}
} ,
"id" : 1966 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "lastDay" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1799 ,
"src" : "3098:18:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 1967 ,
"name" : "today" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2013 ,
"src" : "3119:5:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
"id" : 1968 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3119:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3098:28:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1970 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3098:28:17"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1975 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1971 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1954 ,
"src" : "3140:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage pointer"
}
} ,
"id" : 1973 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1797 ,
"src" : "3140:21:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1974 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3164:1:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3140:25:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1976 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3140:25:17"
}
]
}
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"id" : 1993 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1985 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1982 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1979 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1954 ,
"src" : "3192:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage pointer"
}
} ,
"id" : 1980 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1797 ,
"src" : "3192:21:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "+" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1981 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1948 ,
"src" : "3216:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3192:30:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<=" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1983 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1954 ,
"src" : "3226:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage pointer"
}
} ,
"id" : 1984 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "dailyLimit" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1795 ,
"src" : "3226:21:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3192:55:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1992 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1989 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1986 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1954 ,
"src" : "3263:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage pointer"
}
} ,
"id" : 1987 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1797 ,
"src" : "3263:21:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "+" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1988 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1948 ,
"src" : "3287:6:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3263:30:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1990 ,
"name" : "dailyLimit" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1954 ,
"src" : "3296:10:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_struct$_DailyLimit_$1800_storage_ptr" ,
"typeString" : "struct DailyLimitModule.DailyLimit storage pointer"
}
} ,
"id" : 1991 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "spentToday" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 1797 ,
"src" : "3296:21:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3263:54:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3192:125:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1996 ,
"nodeType" : "IfStatement" ,
"src" : "3185:157:17" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1994 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3338:4:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"functionReturnParameters" : 1952 ,
"id" : 1995 ,
"nodeType" : "Return" ,
"src" : "3331:11:17"
}
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
"id" : 1997 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3359:5:17" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
"functionReturnParameters" : 1952 ,
"id" : 1998 ,
"nodeType" : "Return" ,
"src" : "3352:12:17"
}
]
} ,
"documentation" : null ,
"id" : 2000 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "isUnderLimit" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1949 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1946 ,
"name" : "token" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2000 ,
"src" : "2905:13:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1945 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2905:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1948 ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2000 ,
"src" : "2920:14:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1947 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2920:7:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2904:31:17"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1952 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1951 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2000 ,
"src" : "2970:4:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 1950 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2970:4:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2969:6:17"
} ,
"scope" : 2014 ,
"src" : "2883:488:17" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 2012 ,
"nodeType" : "Block" ,
"src" : "3535:44:17" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 2010 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 2005 ,
"name" : "now" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2656 ,
"src" : "3552:3:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "-" ,
"rightExpression" : {
"argumentTypes" : null ,
"components" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 2008 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 2006 ,
"name" : "now" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2656 ,
"src" : "3559:3:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "%" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "31" ,
"id" : 2007 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3565:6:17" ,
"subdenomination" : "days" ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_86400_by_1" ,
"typeString" : "int_const 86400"
} ,
"value" : "1"
} ,
"src" : "3559:12:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"id" : 2009 ,
"isConstant" : false ,
"isInlineArray" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "TupleExpression" ,
"src" : "3558:14:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "3552:20:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"functionReturnParameters" : 2004 ,
"id" : 2011 ,
"nodeType" : "Return" ,
"src" : "3545:27:17"
}
]
} ,
"documentation" : "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp." ,
"id" : 2013 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "today" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 2001 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "3477:2:17"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 2004 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 2003 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 2013 ,
"src" : "3525:4:17" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 2002 ,
"name" : "uint" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3525:4:17" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3524:6:17"
} ,
"scope" : 2014 ,
"src" : "3463:116:17" ,
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
}
] ,
"scope" : 2015 ,
"src" : "296:3285:17"
}
] ,
"src" : "0:3582:17"
} ,
"compiler" : {
"name" : "solc" ,
"version" : "0.4.24+commit.e67f0147.Emscripten.clang"
} ,
"networks" : {
2018-06-15 07:31:07 +00:00
"1529048918903" : {
2018-05-31 13:01:02 +00:00
"events" : { } ,
"links" : { } ,
2018-06-15 07:31:07 +00:00
"address" : "0xdc8a3873d2fb4956e2a882441d8d557546353264" ,
2018-06-11 07:55:04 +00:00
"transactionHash" : "0xf501438a4ec967e2928d922e4af568a2a5365002f8b3f9e32117bbacfaa49331"
2018-05-31 13:01:02 +00:00
}
} ,
"schemaVersion" : "2.0.0" ,
2018-06-15 07:31:07 +00:00
"updatedAt" : "2018-06-15T07:49:22.361Z"
2018-05-31 13:01:02 +00:00
}