8012 lines
345 KiB
JSON
8012 lines
345 KiB
JSON
{
|
|
"contractName": "DailyLimitModule",
|
|
"abi": [
|
|
{
|
|
"constant": true,
|
|
"inputs": [],
|
|
"name": "TRANSFER_FUNCTION_IDENTIFIER",
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "bytes4"
|
|
}
|
|
],
|
|
"payable": false,
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"inputs": [],
|
|
"name": "manager",
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"payable": false,
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"inputs": [
|
|
{
|
|
"name": "_masterCopy",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "changeMasterCopy",
|
|
"outputs": [],
|
|
"payable": false,
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"inputs": [],
|
|
"name": "NAME",
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"payable": false,
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"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": "to",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"name": "value",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"name": "data",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"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": "0x608060405234801561001057600080fd5b50610d72806100206000396000f3006080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f03146100a9578063430e47f814610152578063481c6a75146101bb5780637de7edef1461021257806381c5e03b14610255578063a3f4df7e146102a2578063b74e452b14610332578063d7bffc921461035d578063fce7379a146103c2578063ffa1ad7414610455575b600080fd5b3480156100b557600080fd5b5061015060048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506104e5565b005b34801561015e57600080fd5b50610167610584565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156101c757600080fd5b506101d06105a8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021e57600080fd5b50610253600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105ce565b005b34801561026157600080fd5b506102a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610693565b005b3480156102ae57600080fd5b506102b761073a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f75780820151818401526020810190506102dc565b50505050905090810190601f1680156103245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033e57600080fd5b50610347610773565b6040518082815260200191505060405180910390f35b34801561036957600080fd5b5061039e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061078b565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103ce57600080fd5b50610453600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506107b5565b005b34801561046157600080fd5b5061046a6107c6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104aa57808201518184015260208101905061048f565b50505050905090810190601f1680156104d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104ef6107ff565b600090505b825181101561057f57818181518110151561050b57fe5b9060200190602002015160026000858481518110151561052757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080806001019150506104f4565b505050565b7fa9059cbb0000000000000000000000000000000000000000000000000000000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561062a57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561065057600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ef57600080fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561078357fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6107c133848484610889565b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561084657600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561094c57600080fd5b505af1158015610960573d6000803e3d6000fd5b505050506040513d602081101561097657600080fd5b8101908080519060200190929190505050151561099257600080fd5b600085511480156109a35750600086115b806109bb5750600085511180156109ba5750600086145b5b15156109c657600080fd5b6000855114156109df5760009350869250859150610a64565b8693506020850151905060248501519250604485015191507fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515610a6357600080fd5b5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610a8a57600080fd5b600082111515610a9957600080fd5b610aa38483610c97565b1515610aae57600080fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540192505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a788888860006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bb857fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bf8578082015181840152602081019050610bdd565b50505050905090810190601f168015610c255780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4757600080fd5b505af1158015610c5b573d6000803e3d6000fd5b505050506040513d6020811015610c7157600080fd5b81019080805190602001909291905050501515610c8d57600080fd5b5050505050505050565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154610ce8610773565b1115610d0957610cf6610773565b8160020181905550600081600101819055505b80600001548382600101540111158015610d2c5750806001015483826001015401115b15610d3a5760019150610d3f565b600091505b50929150505600a165627a7a723058202b262db46605128446bbaae57646d72dc1cd47e08c0421acebf8b1657c881b990029",
|
|
"deployedBytecode": "0x6080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f03146100a9578063430e47f814610152578063481c6a75146101bb5780637de7edef1461021257806381c5e03b14610255578063a3f4df7e146102a2578063b74e452b14610332578063d7bffc921461035d578063fce7379a146103c2578063ffa1ad7414610455575b600080fd5b3480156100b557600080fd5b5061015060048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506104e5565b005b34801561015e57600080fd5b50610167610584565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156101c757600080fd5b506101d06105a8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021e57600080fd5b50610253600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105ce565b005b34801561026157600080fd5b506102a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610693565b005b3480156102ae57600080fd5b506102b761073a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f75780820151818401526020810190506102dc565b50505050905090810190601f1680156103245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033e57600080fd5b50610347610773565b6040518082815260200191505060405180910390f35b34801561036957600080fd5b5061039e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061078b565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103ce57600080fd5b50610453600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506107b5565b005b34801561046157600080fd5b5061046a6107c6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104aa57808201518184015260208101905061048f565b50505050905090810190601f1680156104d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104ef6107ff565b600090505b825181101561057f57818181518110151561050b57fe5b9060200190602002015160026000858481518110151561052757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080806001019150506104f4565b505050565b7fa9059cbb0000000000000000000000000000000000000000000000000000000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561062a57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561065057600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ef57600080fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561078357fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6107c133848484610889565b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561084657600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561094c57600080fd5b505af1158015610960573d6000803e3d6000fd5b505050506040513d602081101561097657600080fd5b8101908080519060200190929190505050151561099257600080fd5b600085511480156109a35750600086115b806109bb5750600085511180156109ba5750600086145b5b15156109c657600080fd5b6000855114156109df5760009350869250859150610a64565b8693506020850151905060248501519250604485015191507fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515610a6357600080fd5b5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610a8a57600080fd5b600082111515610a9957600080fd5b610aa38483610c97565b1515610aae57600080fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540192505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a788888860006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bb857fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bf8578082015181840152602081019050610bdd565b50505050905090810190601f168015610c255780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4757600080fd5b505af1158015610c5b573d6000803e3d6000fd5b505050506040513d6020811015610c7157600080fd5b81019080805190602001909291905050501515610c8d57600080fd5b5050505050505050565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154610ce8610773565b1115610d0957610cf6610773565b8160020181905550600081600101819055505b80600001548382600101540111158015610d2c5750806001015483826001015401115b15610d3a5760019150610d3f565b600091505b50929150505600a165627a7a723058202b262db46605128446bbaae57646d72dc1cd47e08c0421acebf8b1657c881b990029",
|
|
"sourceMap": "296:3862:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;296:3862:10;;;;;;;",
|
|
"deployedSourceMap": "296:3862:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;991:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;991:222:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;441:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;441:67:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:5;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;1441:158:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1441:158:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:50:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4040:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4040:116:10;;;;;;;;;;;;;;;;;;;;;;;586:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;586:50:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3308:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3308:146:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;395:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;395:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;991:222;1104:9;1077:12;:10;:12::i;:::-;1116:1;1104:13;;1099:107;1123:6;:13;1119:1;:17;1099:107;;;1191:12;1204:1;1191:15;;;;;;;;;;;;;;;;;;1155:11;:22;1167:6;1174:1;1167:9;;;;;;;;;;;;;;;;;;1155:22;;;;;;;;;;;;;;;:33;;:51;;;;1138:3;;;;;;;1099:107;;;991:222;;;:::o;441:67::-;;;:::o;262:28:5:-;;;;;;;;;;;;;:::o;626:208:4:-;359:7:5;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;791:1:4;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o;1441:158:10:-;359:7:5;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;1582:10:10;1550:11;:18;1562:5;1550:18;;;;;;;;;;;;;;;:29;;:42;;;;1441:158;;:::o;339:50::-;;;;;;;;;;;;;;;;;;;;:::o;4040:116::-;4102:4;4142:6;4136:3;:12;;;;;;;;4129:3;:20;4122:27;;4040:116;:::o;586:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3308:146::-;3403:44;3419:10;3431:2;3435:5;3442:4;3403:15;:44::i;:::-;3308:146;;;:::o;395:40::-;;;;;;;;;;;;;;;;;;;;:::o;392:268:5:-;606:1;594:7;;;;;;;;;;;586:21;;;578:30;;;;;;;;642:10;618:7;;:35;;;;;;;;;;;;;;;;;;392:268::o;1605:1319:10:-;1997:13;2020:16;2046:14;2233:25;1814:7;;;;;;;;;;;1801:29;;;1831:6;1801:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1801:37:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1801:37:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1801:37:10;;;;;;;;;;;;;;;;1793:46;;;;;;;;1939:1;1924:4;:11;:16;:29;;;;;1952:1;1944:5;:9;1924:29;:62;;;;1971:1;1957:4;:11;:15;:29;;;;;1985:1;1976:5;:10;1957:29;1924:62;1916:71;;;;;;;;2089:1;2074:4;:11;:16;2070:538;;;2114:1;2106:9;;2140:2;2129:13;;2165:5;2156:14;;2070:538;;;2217:2;2209:10;;2405:4;2399;2395:15;2389:22;2367:44;;2456:4;2450;2446:15;2440:22;2428:34;;2505:4;2499;2495:15;2489:22;2479:32;;2568:28;2546:50;;;:18;:50;;;;2538:59;;;;;;;;2070:538;2637:1;2625:8;:13;;;;2617:22;;;;;;;;2666:1;2657:6;:10;2649:19;;;;;;;;2750:27;2763:5;2770:6;2750:12;:27::i;:::-;2742:36;;;;;;;;2821:6;2788:11;:18;2800:5;2788:18;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;2845:7;;;;;;;;;;;:33;;;2879:2;2883:5;2890:4;2896:19;2845:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2845:71:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2845:71:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2845:71:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2845:71:10;;;;;;;;;;;;;;;;2837:80;;;;;;;;1605:1319;;;;;;;;:::o;3460:488::-;3547:4;3567:29;3599:11;:18;3611:5;3599:18;;;;;;;;;;;;;;;3567:50;;3641:10;:18;;;3631:7;:5;:7::i;:::-;:28;3627:126;;;3696:7;:5;:7::i;:::-;3675:10;:18;;:28;;;;3741:1;3717:10;:21;;:25;;;;3627:126;3803:10;:21;;;3793:6;3769:10;:21;;;:30;:55;;:125;;;;;3873:10;:21;;;3864:6;3840:10;:21;;;:30;:54;3769:125;3762:157;;;3915:4;3908:11;;;;3762:157;3936:5;3929:12;;3460:488;;;;;;:::o",
|
|
"source": "pragma solidity 0.4.23;\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 bytes4 public constant TRANSFER_FUNCTION_IDENTIFIER = hex\"a9059cbb\";\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 function executeInternal(address sender, address to, uint256 value, bytes data)\n internal\n {\n // Only Safe owners are allowed to execute daily limit transactions.\n require(OwnerManager(manager).isOwner(sender));\n // Data has to encode a token transfer or has to be empty.\n require(data.length == 0 && value > 0 || data.length > 0 && value == 0);\n address token;\n address receiver;\n uint256 amount;\n if (data.length == 0) {\n token = 0;\n receiver = to;\n amount = value;\n }\n else {\n token = to;\n bytes4 functionIdentifier;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n functionIdentifier := mload(add(data, 0x20))\n receiver := mload(add(data, 0x24))\n amount := mload(add(data, 0x44))\n }\n require(functionIdentifier == TRANSFER_FUNCTION_IDENTIFIER);\n }\n require(receiver != 0);\n require(amount > 0);\n // Validate that transfer is not exceeding daily limit.\n require(isUnderLimit(token, amount));\n dailyLimits[token].spentToday += amount;\n require(manager.execTransactionFromModule(to, value, data, Enum.Operation.Call));\n }\n\n /// @dev Returns if Safe transaction is a valid daily limit transaction.\n /// @param to Receiver address in case of Ether transfer, token address in case of a token transfer.\n /// @param value Ether value in case of an Ether transfer.\n /// @param data Encoded token transfer. Empty in case of Ether transfer.\n /// @return Returns if transaction can be executed.\n function executeDailyLimit(address to, uint256 value, bytes data)\n public\n {\n executeInternal(msg.sender, to, value, data);\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": [
|
|
1694
|
|
]
|
|
},
|
|
"id": 1695,
|
|
"nodeType": "SourceUnit",
|
|
"nodes": [
|
|
{
|
|
"id": 1406,
|
|
"literals": [
|
|
"solidity",
|
|
"0.4",
|
|
".23"
|
|
],
|
|
"nodeType": "PragmaDirective",
|
|
"src": "0:23:10"
|
|
},
|
|
{
|
|
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol",
|
|
"file": "../Module.sol",
|
|
"id": 1407,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1695,
|
|
"sourceUnit": 622,
|
|
"src": "24:23:10",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol",
|
|
"file": "../ModuleManager.sol",
|
|
"id": 1408,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1695,
|
|
"sourceUnit": 972,
|
|
"src": "48:30:10",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol",
|
|
"file": "../OwnerManager.sol",
|
|
"id": 1409,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1695,
|
|
"sourceUnit": 1344,
|
|
"src": "79:29:10",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol",
|
|
"file": "../Enum.sol",
|
|
"id": 1410,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1695,
|
|
"sourceUnit": 7,
|
|
"src": "109:21:10",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"baseContracts": [
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 1411,
|
|
"name": "Module",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 621,
|
|
"src": "325:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Module_$621",
|
|
"typeString": "contract Module"
|
|
}
|
|
},
|
|
"id": 1412,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "325:6:10"
|
|
}
|
|
],
|
|
"contractDependencies": [
|
|
580,
|
|
621,
|
|
1359
|
|
],
|
|
"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": 1694,
|
|
"linearizedBaseContracts": [
|
|
1694,
|
|
621,
|
|
580,
|
|
1359
|
|
],
|
|
"name": "DailyLimitModule",
|
|
"nodeType": "ContractDefinition",
|
|
"nodes": [
|
|
{
|
|
"constant": true,
|
|
"id": 1415,
|
|
"name": "NAME",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1694,
|
|
"src": "339:50:10",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory",
|
|
"typeString": "string"
|
|
},
|
|
"typeName": {
|
|
"id": 1413,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "339:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "4461696c79204c696d6974204d6f64756c65",
|
|
"id": 1414,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "369:20:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_821ea27acfbc77b49f7a021dbe2eb92017d46b8bdda0bff9901cbc8ee143ceb3",
|
|
"typeString": "literal_string \"Daily Limit Module\""
|
|
},
|
|
"value": "Daily Limit Module"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 1418,
|
|
"name": "VERSION",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1694,
|
|
"src": "395:40:10",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory",
|
|
"typeString": "string"
|
|
},
|
|
"typeName": {
|
|
"id": 1416,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "395:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "302e302e31",
|
|
"id": 1417,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "428:7:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885",
|
|
"typeString": "literal_string \"0.0.1\""
|
|
},
|
|
"value": "0.0.1"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 1421,
|
|
"name": "TRANSFER_FUNCTION_IDENTIFIER",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1694,
|
|
"src": "441:67:10",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
},
|
|
"typeName": {
|
|
"id": 1419,
|
|
"name": "bytes4",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "441:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "a9059cbb",
|
|
"id": 1420,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "495:13:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_abce0605a16ff5e998983a0af570b8ad942bb11e305eb20ae3ada0a3be24eb97",
|
|
"typeString": "literal_string (contains invalid UTF-8 sequence at position 0)"
|
|
},
|
|
"value": null
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1425,
|
|
"name": "dailyLimits",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1694,
|
|
"src": "586:50:10",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$",
|
|
"typeString": "mapping(address => struct DailyLimitModule.DailyLimit)"
|
|
},
|
|
"typeName": {
|
|
"id": 1424,
|
|
"keyType": {
|
|
"id": 1422,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "595:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Mapping",
|
|
"src": "586:31:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$",
|
|
"typeString": "mapping(address => struct DailyLimitModule.DailyLimit)"
|
|
},
|
|
"valueType": {
|
|
"contractScope": null,
|
|
"id": 1423,
|
|
"name": "DailyLimit",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 1432,
|
|
"src": "606:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit"
|
|
}
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"canonicalName": "DailyLimitModule.DailyLimit",
|
|
"id": 1432,
|
|
"members": [
|
|
{
|
|
"constant": false,
|
|
"id": 1427,
|
|
"name": "dailyLimit",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1432,
|
|
"src": "671:18:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1426,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "671:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1429,
|
|
"name": "spentToday",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1432,
|
|
"src": "699:18:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1428,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "699:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1431,
|
|
"name": "lastDay",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1432,
|
|
"src": "727:15:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1430,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "727:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"name": "DailyLimit",
|
|
"nodeType": "StructDefinition",
|
|
"scope": 1694,
|
|
"src": "643:106:10",
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1467,
|
|
"nodeType": "Block",
|
|
"src": "1067:146:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 1441,
|
|
"name": "setManager",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 620,
|
|
"src": "1077:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
|
|
"typeString": "function ()"
|
|
}
|
|
},
|
|
"id": 1442,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1077:12:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1443,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1077:12:10"
|
|
},
|
|
{
|
|
"body": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1464,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1455,
|
|
"name": "dailyLimits",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1425,
|
|
"src": "1155:11:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$",
|
|
"typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
|
|
}
|
|
},
|
|
"id": 1459,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1456,
|
|
"name": "tokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1435,
|
|
"src": "1167:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 1458,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1457,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1445,
|
|
"src": "1174:1:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "1167:9:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "1155:22:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage ref"
|
|
}
|
|
},
|
|
"id": 1460,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "dailyLimit",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1427,
|
|
"src": "1155:33:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1461,
|
|
"name": "_dailyLimits",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1438,
|
|
"src": "1191:12:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
|
|
"typeString": "uint256[] memory"
|
|
}
|
|
},
|
|
"id": 1463,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1462,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1445,
|
|
"src": "1204:1:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "1191:15:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "1155:51:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1465,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1155:51:10"
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1451,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1448,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1445,
|
|
"src": "1119:1:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1449,
|
|
"name": "tokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1435,
|
|
"src": "1123:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 1450,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "1123:13:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "1119:17:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 1466,
|
|
"initializationExpression": {
|
|
"assignments": [
|
|
1445
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1445,
|
|
"name": "i",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1468,
|
|
"src": "1104:9:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1444,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1104:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1447,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1446,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1116:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "1104:13:10"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1453,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"src": "1138:3:10",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1452,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1445,
|
|
"src": "1138:1:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1454,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1138:3:10"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "1099:107:10"
|
|
}
|
|
]
|
|
},
|
|
"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": 1468,
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"isDeclaredConst": false,
|
|
"modifiers": [],
|
|
"name": "setup",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 1439,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1435,
|
|
"name": "tokens",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1468,
|
|
"src": "1006:16:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1433,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1006:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1434,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "1006:9:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1438,
|
|
"name": "_dailyLimits",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1468,
|
|
"src": "1024:22:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
|
|
"typeString": "uint256[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1436,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1024:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1437,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "1024:9:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
|
|
"typeString": "uint256[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1005:42:10"
|
|
},
|
|
"payable": false,
|
|
"returnParameters": {
|
|
"id": 1440,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "1067:0:10"
|
|
},
|
|
"scope": 1694,
|
|
"src": "991:222:10",
|
|
"stateMutability": "nonpayable",
|
|
"superFunction": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1484,
|
|
"nodeType": "Block",
|
|
"src": "1540:59:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1482,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1477,
|
|
"name": "dailyLimits",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1425,
|
|
"src": "1550:11:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$",
|
|
"typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
|
|
}
|
|
},
|
|
"id": 1479,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1478,
|
|
"name": "token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1470,
|
|
"src": "1562:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "1550:18:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage ref"
|
|
}
|
|
},
|
|
"id": 1480,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "dailyLimit",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1427,
|
|
"src": "1550:29:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1481,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1472,
|
|
"src": "1582:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "1550:42:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1483,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1550:42:10"
|
|
}
|
|
]
|
|
},
|
|
"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": 1485,
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"isDeclaredConst": false,
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 1475,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 1474,
|
|
"name": "authorized",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 601,
|
|
"src": "1525:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "1525:10:10"
|
|
}
|
|
],
|
|
"name": "changeDailyLimit",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 1473,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1470,
|
|
"name": "token",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1485,
|
|
"src": "1467:13:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1469,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1467:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1472,
|
|
"name": "dailyLimit",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1485,
|
|
"src": "1482:18:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1471,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1482:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1466:35:10"
|
|
},
|
|
"payable": false,
|
|
"returnParameters": {
|
|
"id": 1476,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "1540:0:10"
|
|
},
|
|
"scope": 1694,
|
|
"src": "1441:158:10",
|
|
"stateMutability": "nonpayable",
|
|
"superFunction": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1605,
|
|
"nodeType": "Block",
|
|
"src": "1706:1218:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1501,
|
|
"name": "sender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1487,
|
|
"src": "1831:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1498,
|
|
"name": "manager",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 588,
|
|
"src": "1814:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ModuleManager_$971",
|
|
"typeString": "contract ModuleManager"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_ModuleManager_$971",
|
|
"typeString": "contract ModuleManager"
|
|
}
|
|
],
|
|
"id": 1497,
|
|
"name": "OwnerManager",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1343,
|
|
"src": "1801:12:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_OwnerManager_$1343_$",
|
|
"typeString": "type(contract OwnerManager)"
|
|
}
|
|
},
|
|
"id": 1499,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1801:21:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_OwnerManager_$1343",
|
|
"typeString": "contract OwnerManager"
|
|
}
|
|
},
|
|
"id": 1500,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isOwner",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1293,
|
|
"src": "1801:29:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
|
|
"typeString": "function (address) view external returns (bool)"
|
|
}
|
|
},
|
|
"id": 1502,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1801:37:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1496,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
2399,
|
|
2400
|
|
],
|
|
"referencedDeclaration": 2399,
|
|
"src": "1793:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1503,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1793:46:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1504,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1793:46:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 1522,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 1513,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1509,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1506,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1493,
|
|
"src": "1924:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1507,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "1924:11:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1508,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1939:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "1924:16:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1512,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1510,
|
|
"name": "value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1491,
|
|
"src": "1944:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1511,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1952:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "1944:9:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "1924:29:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "||",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 1521,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1517,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1514,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1493,
|
|
"src": "1957:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1515,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "1957:11:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1516,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1971:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "1957:15:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1520,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1518,
|
|
"name": "value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1491,
|
|
"src": "1976:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1519,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1985:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "1976:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "1957:29:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "1924:62:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1505,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
2399,
|
|
2400
|
|
],
|
|
"referencedDeclaration": 2399,
|
|
"src": "1916:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1523,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1916:71:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1524,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1916:71:10"
|
|
},
|
|
{
|
|
"assignments": [],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1526,
|
|
"name": "token",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "1997:13:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1525,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1997:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1527,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "1997:13:10"
|
|
},
|
|
{
|
|
"assignments": [],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1529,
|
|
"name": "receiver",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "2020:16:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1528,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2020:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1530,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2020:16:10"
|
|
},
|
|
{
|
|
"assignments": [],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1532,
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "2046:14:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1531,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2046:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1533,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2046:14:10"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1537,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1534,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1493,
|
|
"src": "2074:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1535,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "2074:11:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1536,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2089:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "2074:16:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"id": 1565,
|
|
"nodeType": "Block",
|
|
"src": "2195:413:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1553,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1551,
|
|
"name": "token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1526,
|
|
"src": "2209:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1552,
|
|
"name": "to",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1489,
|
|
"src": "2217:2:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "2209:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1554,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2209:10:10"
|
|
},
|
|
{
|
|
"assignments": [],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1556,
|
|
"name": "functionIdentifier",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "2233:25:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
},
|
|
"typeName": {
|
|
"id": 1555,
|
|
"name": "bytes4",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2233:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1557,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2233:25:10"
|
|
},
|
|
{
|
|
"externalReferences": [
|
|
{
|
|
"functionIdentifier": {
|
|
"declaration": 1556,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "2367:18:10",
|
|
"valueSize": 1
|
|
}
|
|
},
|
|
{
|
|
"data": {
|
|
"declaration": 1493,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "2399:4:10",
|
|
"valueSize": 1
|
|
}
|
|
},
|
|
{
|
|
"receiver": {
|
|
"declaration": 1529,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "2428:8:10",
|
|
"valueSize": 1
|
|
}
|
|
},
|
|
{
|
|
"amount": {
|
|
"declaration": 1532,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "2479:6:10",
|
|
"valueSize": 1
|
|
}
|
|
},
|
|
{
|
|
"data": {
|
|
"declaration": 1493,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "2450:4:10",
|
|
"valueSize": 1
|
|
}
|
|
},
|
|
{
|
|
"data": {
|
|
"declaration": 1493,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "2499:4:10",
|
|
"valueSize": 1
|
|
}
|
|
}
|
|
],
|
|
"id": 1558,
|
|
"nodeType": "InlineAssembly",
|
|
"operations": "{\n functionIdentifier := mload(add(data, 0x20))\n receiver := mload(add(data, 0x24))\n amount := mload(add(data, 0x44))\n}",
|
|
"src": "2340:205:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
},
|
|
"id": 1562,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1560,
|
|
"name": "functionIdentifier",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1556,
|
|
"src": "2546:18:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1561,
|
|
"name": "TRANSFER_FUNCTION_IDENTIFIER",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1421,
|
|
"src": "2568:28:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"src": "2546:50:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1559,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
2399,
|
|
2400
|
|
],
|
|
"referencedDeclaration": 2399,
|
|
"src": "2538:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1563,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2538:59:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1564,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2538:59:10"
|
|
}
|
|
]
|
|
},
|
|
"id": 1566,
|
|
"nodeType": "IfStatement",
|
|
"src": "2070:538:10",
|
|
"trueBody": {
|
|
"id": 1550,
|
|
"nodeType": "Block",
|
|
"src": "2092:89:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1540,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1538,
|
|
"name": "token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1526,
|
|
"src": "2106:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1539,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2114:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "2106:9:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1541,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2106:9:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1544,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1542,
|
|
"name": "receiver",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1529,
|
|
"src": "2129:8:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1543,
|
|
"name": "to",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1489,
|
|
"src": "2140:2:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "2129:13:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1545,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2129:13:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1548,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1546,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1532,
|
|
"src": "2156:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1547,
|
|
"name": "value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1491,
|
|
"src": "2165:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "2156:14:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1549,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2156:14:10"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 1570,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1568,
|
|
"name": "receiver",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1529,
|
|
"src": "2625:8:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1569,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2637:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "2625:13:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1567,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
2399,
|
|
2400
|
|
],
|
|
"referencedDeclaration": 2399,
|
|
"src": "2617:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1571,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2617:22:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1572,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2617:22:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1576,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1574,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1532,
|
|
"src": "2657:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1575,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2666:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "2657:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1573,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
2399,
|
|
2400
|
|
],
|
|
"referencedDeclaration": 2399,
|
|
"src": "2649:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1577,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2649:19:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1578,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2649:19:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1581,
|
|
"name": "token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1526,
|
|
"src": "2763:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1582,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1532,
|
|
"src": "2770:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1580,
|
|
"name": "isUnderLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1680,
|
|
"src": "2750:12:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
|
|
"typeString": "function (address,uint256) returns (bool)"
|
|
}
|
|
},
|
|
"id": 1583,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2750:27:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1579,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
2399,
|
|
2400
|
|
],
|
|
"referencedDeclaration": 2399,
|
|
"src": "2742:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1584,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2742:36:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1585,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2742:36:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1591,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1586,
|
|
"name": "dailyLimits",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1425,
|
|
"src": "2788:11:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$",
|
|
"typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
|
|
}
|
|
},
|
|
"id": 1588,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1587,
|
|
"name": "token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1526,
|
|
"src": "2800:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "2788:18:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage ref"
|
|
}
|
|
},
|
|
"id": 1589,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "spentToday",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1429,
|
|
"src": "2788:29:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "+=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1590,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1532,
|
|
"src": "2821:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "2788:39:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1592,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2788:39:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1596,
|
|
"name": "to",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1489,
|
|
"src": "2879:2:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1597,
|
|
"name": "value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1491,
|
|
"src": "2883:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1598,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1493,
|
|
"src": "2890:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1599,
|
|
"name": "Enum",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 6,
|
|
"src": "2896:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_Enum_$6_$",
|
|
"typeString": "type(contract Enum)"
|
|
}
|
|
},
|
|
"id": 1600,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "Operation",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 5,
|
|
"src": "2896:14:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_enum$_Operation_$5_$",
|
|
"typeString": "type(enum Enum.Operation)"
|
|
}
|
|
},
|
|
"id": 1601,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberName": "Call",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "2896:19:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_enum$_Operation_$5",
|
|
"typeString": "enum Enum.Operation"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_enum$_Operation_$5",
|
|
"typeString": "enum Enum.Operation"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1594,
|
|
"name": "manager",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 588,
|
|
"src": "2845:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ModuleManager_$971",
|
|
"typeString": "contract ModuleManager"
|
|
}
|
|
},
|
|
"id": 1595,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "execTransactionFromModule",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 798,
|
|
"src": "2845:33:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$returns$_t_bool_$",
|
|
"typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)"
|
|
}
|
|
},
|
|
"id": 1602,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2845:71:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1593,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
2399,
|
|
2400
|
|
],
|
|
"referencedDeclaration": 2399,
|
|
"src": "2837:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1603,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2837:80:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1604,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2837:80:10"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 1606,
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"isDeclaredConst": false,
|
|
"modifiers": [],
|
|
"name": "executeInternal",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 1494,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1487,
|
|
"name": "sender",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "1630:14:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1486,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1630:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1489,
|
|
"name": "to",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "1646:10:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1488,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1646:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1491,
|
|
"name": "value",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "1658:13:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1490,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1658:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1493,
|
|
"name": "data",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "1673:10:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 1492,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1673:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1629:55:10"
|
|
},
|
|
"payable": false,
|
|
"returnParameters": {
|
|
"id": 1495,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "1706:0:10"
|
|
},
|
|
"scope": 1694,
|
|
"src": "1605:1319:10",
|
|
"stateMutability": "nonpayable",
|
|
"superFunction": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1623,
|
|
"nodeType": "Block",
|
|
"src": "3393:61:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1616,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2396,
|
|
"src": "3419:3:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1617,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "3419:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1618,
|
|
"name": "to",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1608,
|
|
"src": "3431:2:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1619,
|
|
"name": "value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1610,
|
|
"src": "3435:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1620,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1612,
|
|
"src": "3442:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"id": 1615,
|
|
"name": "executeInternal",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1606,
|
|
"src": "3403:15:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
|
|
"typeString": "function (address,address,uint256,bytes memory)"
|
|
}
|
|
},
|
|
"id": 1621,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3403:44:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1622,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3403:44:10"
|
|
}
|
|
]
|
|
},
|
|
"documentation": "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param to Receiver address in case of Ether transfer, token address in case of a token transfer.\n @param value Ether value in case of an Ether transfer.\n @param data Encoded token transfer. Empty in case of Ether transfer.\n @return Returns if transaction can be executed.",
|
|
"id": 1624,
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"isDeclaredConst": false,
|
|
"modifiers": [],
|
|
"name": "executeDailyLimit",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 1613,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1608,
|
|
"name": "to",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1624,
|
|
"src": "3335:10:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1607,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3335:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1610,
|
|
"name": "value",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1624,
|
|
"src": "3347:13:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1609,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3347:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1612,
|
|
"name": "data",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1624,
|
|
"src": "3362:10:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 1611,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3362:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3334:39:10"
|
|
},
|
|
"payable": false,
|
|
"returnParameters": {
|
|
"id": 1614,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "3393:0:10"
|
|
},
|
|
"scope": 1694,
|
|
"src": "3308:146:10",
|
|
"stateMutability": "nonpayable",
|
|
"superFunction": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1679,
|
|
"nodeType": "Block",
|
|
"src": "3557:391:10",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1634
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1634,
|
|
"name": "dailyLimit",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1680,
|
|
"src": "3567:29:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "storage",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1633,
|
|
"name": "DailyLimit",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 1432,
|
|
"src": "3567:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1638,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1635,
|
|
"name": "dailyLimits",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1425,
|
|
"src": "3599:11:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$",
|
|
"typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
|
|
}
|
|
},
|
|
"id": 1637,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1636,
|
|
"name": "token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1626,
|
|
"src": "3611:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "3599:18:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage ref"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "3567:50:10"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1643,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 1639,
|
|
"name": "today",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1693,
|
|
"src": "3631:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
|
|
"typeString": "function () view returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1640,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3631:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1641,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1634,
|
|
"src": "3641:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage pointer"
|
|
}
|
|
},
|
|
"id": 1642,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "lastDay",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1431,
|
|
"src": "3641:18:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "3631:28:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1658,
|
|
"nodeType": "IfStatement",
|
|
"src": "3627:126:10",
|
|
"trueBody": {
|
|
"id": 1657,
|
|
"nodeType": "Block",
|
|
"src": "3661:92:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1649,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1644,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1634,
|
|
"src": "3675:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage pointer"
|
|
}
|
|
},
|
|
"id": 1646,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "lastDay",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1431,
|
|
"src": "3675:18:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 1647,
|
|
"name": "today",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1693,
|
|
"src": "3696:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
|
|
"typeString": "function () view returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1648,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3696:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "3675:28:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1650,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3675:28:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1655,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1651,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1634,
|
|
"src": "3717:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage pointer"
|
|
}
|
|
},
|
|
"id": 1653,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "spentToday",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1429,
|
|
"src": "3717:21:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1654,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3741:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "3717:25:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1656,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3717:25:10"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 1673,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1665,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1662,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1659,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1634,
|
|
"src": "3769:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage pointer"
|
|
}
|
|
},
|
|
"id": 1660,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "spentToday",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1429,
|
|
"src": "3769:21:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1661,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1628,
|
|
"src": "3793:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "3769:30:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1663,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1634,
|
|
"src": "3803:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage pointer"
|
|
}
|
|
},
|
|
"id": 1664,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "dailyLimit",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1427,
|
|
"src": "3803:21:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "3769:55:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1672,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1669,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1666,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1634,
|
|
"src": "3840:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage pointer"
|
|
}
|
|
},
|
|
"id": 1667,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "spentToday",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1429,
|
|
"src": "3840:21:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1668,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1628,
|
|
"src": "3864:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "3840:30:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1670,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1634,
|
|
"src": "3873:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage pointer"
|
|
}
|
|
},
|
|
"id": 1671,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "spentToday",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1429,
|
|
"src": "3873:21:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "3840:54:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "3769:125:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1676,
|
|
"nodeType": "IfStatement",
|
|
"src": "3762:157:10",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 1674,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3915:4:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"functionReturnParameters": 1632,
|
|
"id": 1675,
|
|
"nodeType": "Return",
|
|
"src": "3908:11:10"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "66616c7365",
|
|
"id": 1677,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3936:5:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "false"
|
|
},
|
|
"functionReturnParameters": 1632,
|
|
"id": 1678,
|
|
"nodeType": "Return",
|
|
"src": "3929:12:10"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 1680,
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"isDeclaredConst": false,
|
|
"modifiers": [],
|
|
"name": "isUnderLimit",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 1629,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1626,
|
|
"name": "token",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1680,
|
|
"src": "3482:13:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1625,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3482:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1628,
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1680,
|
|
"src": "3497:14:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1627,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3497:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3481:31:10"
|
|
},
|
|
"payable": false,
|
|
"returnParameters": {
|
|
"id": 1632,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1631,
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1680,
|
|
"src": "3547:4:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1630,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3547:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3546:6:10"
|
|
},
|
|
"scope": 1694,
|
|
"src": "3460:488:10",
|
|
"stateMutability": "nonpayable",
|
|
"superFunction": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1692,
|
|
"nodeType": "Block",
|
|
"src": "4112:44:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1690,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1685,
|
|
"name": "now",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2398,
|
|
"src": "4129:3:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1688,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1686,
|
|
"name": "now",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2398,
|
|
"src": "4136:3:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "%",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1687,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "4142:6:10",
|
|
"subdenomination": "days",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_86400_by_1",
|
|
"typeString": "int_const 86400"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "4136:12:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"id": 1689,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "4135:14:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "4129:20:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1684,
|
|
"id": 1691,
|
|
"nodeType": "Return",
|
|
"src": "4122:27:10"
|
|
}
|
|
]
|
|
},
|
|
"documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.",
|
|
"id": 1693,
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"isDeclaredConst": true,
|
|
"modifiers": [],
|
|
"name": "today",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 1681,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "4054:2:10"
|
|
},
|
|
"payable": false,
|
|
"returnParameters": {
|
|
"id": 1684,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1683,
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1693,
|
|
"src": "4102:4:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1682,
|
|
"name": "uint",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4102:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4101:6:10"
|
|
},
|
|
"scope": 1694,
|
|
"src": "4040:116:10",
|
|
"stateMutability": "view",
|
|
"superFunction": null,
|
|
"visibility": "public"
|
|
}
|
|
],
|
|
"scope": 1695,
|
|
"src": "296:3862:10"
|
|
}
|
|
],
|
|
"src": "0:4159:10"
|
|
},
|
|
"legacyAST": {
|
|
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol",
|
|
"exportedSymbols": {
|
|
"DailyLimitModule": [
|
|
1694
|
|
]
|
|
},
|
|
"id": 1695,
|
|
"nodeType": "SourceUnit",
|
|
"nodes": [
|
|
{
|
|
"id": 1406,
|
|
"literals": [
|
|
"solidity",
|
|
"0.4",
|
|
".23"
|
|
],
|
|
"nodeType": "PragmaDirective",
|
|
"src": "0:23:10"
|
|
},
|
|
{
|
|
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol",
|
|
"file": "../Module.sol",
|
|
"id": 1407,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1695,
|
|
"sourceUnit": 622,
|
|
"src": "24:23:10",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol",
|
|
"file": "../ModuleManager.sol",
|
|
"id": 1408,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1695,
|
|
"sourceUnit": 972,
|
|
"src": "48:30:10",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol",
|
|
"file": "../OwnerManager.sol",
|
|
"id": 1409,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1695,
|
|
"sourceUnit": 1344,
|
|
"src": "79:29:10",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol",
|
|
"file": "../Enum.sol",
|
|
"id": 1410,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1695,
|
|
"sourceUnit": 7,
|
|
"src": "109:21:10",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"baseContracts": [
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 1411,
|
|
"name": "Module",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 621,
|
|
"src": "325:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Module_$621",
|
|
"typeString": "contract Module"
|
|
}
|
|
},
|
|
"id": 1412,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "325:6:10"
|
|
}
|
|
],
|
|
"contractDependencies": [
|
|
580,
|
|
621,
|
|
1359
|
|
],
|
|
"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": 1694,
|
|
"linearizedBaseContracts": [
|
|
1694,
|
|
621,
|
|
580,
|
|
1359
|
|
],
|
|
"name": "DailyLimitModule",
|
|
"nodeType": "ContractDefinition",
|
|
"nodes": [
|
|
{
|
|
"constant": true,
|
|
"id": 1415,
|
|
"name": "NAME",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1694,
|
|
"src": "339:50:10",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory",
|
|
"typeString": "string"
|
|
},
|
|
"typeName": {
|
|
"id": 1413,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "339:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "4461696c79204c696d6974204d6f64756c65",
|
|
"id": 1414,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "369:20:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_821ea27acfbc77b49f7a021dbe2eb92017d46b8bdda0bff9901cbc8ee143ceb3",
|
|
"typeString": "literal_string \"Daily Limit Module\""
|
|
},
|
|
"value": "Daily Limit Module"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 1418,
|
|
"name": "VERSION",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1694,
|
|
"src": "395:40:10",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory",
|
|
"typeString": "string"
|
|
},
|
|
"typeName": {
|
|
"id": 1416,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "395:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "302e302e31",
|
|
"id": 1417,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "428:7:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885",
|
|
"typeString": "literal_string \"0.0.1\""
|
|
},
|
|
"value": "0.0.1"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 1421,
|
|
"name": "TRANSFER_FUNCTION_IDENTIFIER",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1694,
|
|
"src": "441:67:10",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
},
|
|
"typeName": {
|
|
"id": 1419,
|
|
"name": "bytes4",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "441:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "a9059cbb",
|
|
"id": 1420,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "495:13:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_abce0605a16ff5e998983a0af570b8ad942bb11e305eb20ae3ada0a3be24eb97",
|
|
"typeString": "literal_string (contains invalid UTF-8 sequence at position 0)"
|
|
},
|
|
"value": null
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1425,
|
|
"name": "dailyLimits",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1694,
|
|
"src": "586:50:10",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$",
|
|
"typeString": "mapping(address => struct DailyLimitModule.DailyLimit)"
|
|
},
|
|
"typeName": {
|
|
"id": 1424,
|
|
"keyType": {
|
|
"id": 1422,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "595:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Mapping",
|
|
"src": "586:31:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$",
|
|
"typeString": "mapping(address => struct DailyLimitModule.DailyLimit)"
|
|
},
|
|
"valueType": {
|
|
"contractScope": null,
|
|
"id": 1423,
|
|
"name": "DailyLimit",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 1432,
|
|
"src": "606:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit"
|
|
}
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"canonicalName": "DailyLimitModule.DailyLimit",
|
|
"id": 1432,
|
|
"members": [
|
|
{
|
|
"constant": false,
|
|
"id": 1427,
|
|
"name": "dailyLimit",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1432,
|
|
"src": "671:18:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1426,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "671:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1429,
|
|
"name": "spentToday",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1432,
|
|
"src": "699:18:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1428,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "699:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1431,
|
|
"name": "lastDay",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1432,
|
|
"src": "727:15:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1430,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "727:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"name": "DailyLimit",
|
|
"nodeType": "StructDefinition",
|
|
"scope": 1694,
|
|
"src": "643:106:10",
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1467,
|
|
"nodeType": "Block",
|
|
"src": "1067:146:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 1441,
|
|
"name": "setManager",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 620,
|
|
"src": "1077:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
|
|
"typeString": "function ()"
|
|
}
|
|
},
|
|
"id": 1442,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1077:12:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1443,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1077:12:10"
|
|
},
|
|
{
|
|
"body": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1464,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1455,
|
|
"name": "dailyLimits",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1425,
|
|
"src": "1155:11:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$",
|
|
"typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
|
|
}
|
|
},
|
|
"id": 1459,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1456,
|
|
"name": "tokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1435,
|
|
"src": "1167:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 1458,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1457,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1445,
|
|
"src": "1174:1:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "1167:9:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "1155:22:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage ref"
|
|
}
|
|
},
|
|
"id": 1460,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "dailyLimit",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1427,
|
|
"src": "1155:33:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1461,
|
|
"name": "_dailyLimits",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1438,
|
|
"src": "1191:12:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
|
|
"typeString": "uint256[] memory"
|
|
}
|
|
},
|
|
"id": 1463,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1462,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1445,
|
|
"src": "1204:1:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "1191:15:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "1155:51:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1465,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1155:51:10"
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1451,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1448,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1445,
|
|
"src": "1119:1:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1449,
|
|
"name": "tokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1435,
|
|
"src": "1123:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 1450,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "1123:13:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "1119:17:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 1466,
|
|
"initializationExpression": {
|
|
"assignments": [
|
|
1445
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1445,
|
|
"name": "i",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1468,
|
|
"src": "1104:9:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1444,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1104:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1447,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1446,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1116:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "1104:13:10"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1453,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"src": "1138:3:10",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1452,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1445,
|
|
"src": "1138:1:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1454,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1138:3:10"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "1099:107:10"
|
|
}
|
|
]
|
|
},
|
|
"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": 1468,
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"isDeclaredConst": false,
|
|
"modifiers": [],
|
|
"name": "setup",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 1439,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1435,
|
|
"name": "tokens",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1468,
|
|
"src": "1006:16:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1433,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1006:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1434,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "1006:9:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1438,
|
|
"name": "_dailyLimits",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1468,
|
|
"src": "1024:22:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
|
|
"typeString": "uint256[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1436,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1024:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1437,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "1024:9:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
|
|
"typeString": "uint256[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1005:42:10"
|
|
},
|
|
"payable": false,
|
|
"returnParameters": {
|
|
"id": 1440,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "1067:0:10"
|
|
},
|
|
"scope": 1694,
|
|
"src": "991:222:10",
|
|
"stateMutability": "nonpayable",
|
|
"superFunction": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1484,
|
|
"nodeType": "Block",
|
|
"src": "1540:59:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1482,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1477,
|
|
"name": "dailyLimits",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1425,
|
|
"src": "1550:11:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$",
|
|
"typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
|
|
}
|
|
},
|
|
"id": 1479,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1478,
|
|
"name": "token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1470,
|
|
"src": "1562:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "1550:18:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage ref"
|
|
}
|
|
},
|
|
"id": 1480,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "dailyLimit",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1427,
|
|
"src": "1550:29:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1481,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1472,
|
|
"src": "1582:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "1550:42:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1483,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1550:42:10"
|
|
}
|
|
]
|
|
},
|
|
"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": 1485,
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"isDeclaredConst": false,
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 1475,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 1474,
|
|
"name": "authorized",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 601,
|
|
"src": "1525:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "1525:10:10"
|
|
}
|
|
],
|
|
"name": "changeDailyLimit",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 1473,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1470,
|
|
"name": "token",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1485,
|
|
"src": "1467:13:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1469,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1467:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1472,
|
|
"name": "dailyLimit",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1485,
|
|
"src": "1482:18:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1471,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1482:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1466:35:10"
|
|
},
|
|
"payable": false,
|
|
"returnParameters": {
|
|
"id": 1476,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "1540:0:10"
|
|
},
|
|
"scope": 1694,
|
|
"src": "1441:158:10",
|
|
"stateMutability": "nonpayable",
|
|
"superFunction": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1605,
|
|
"nodeType": "Block",
|
|
"src": "1706:1218:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1501,
|
|
"name": "sender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1487,
|
|
"src": "1831:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1498,
|
|
"name": "manager",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 588,
|
|
"src": "1814:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ModuleManager_$971",
|
|
"typeString": "contract ModuleManager"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_ModuleManager_$971",
|
|
"typeString": "contract ModuleManager"
|
|
}
|
|
],
|
|
"id": 1497,
|
|
"name": "OwnerManager",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1343,
|
|
"src": "1801:12:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_OwnerManager_$1343_$",
|
|
"typeString": "type(contract OwnerManager)"
|
|
}
|
|
},
|
|
"id": 1499,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1801:21:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_OwnerManager_$1343",
|
|
"typeString": "contract OwnerManager"
|
|
}
|
|
},
|
|
"id": 1500,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isOwner",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1293,
|
|
"src": "1801:29:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
|
|
"typeString": "function (address) view external returns (bool)"
|
|
}
|
|
},
|
|
"id": 1502,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1801:37:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1496,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
2399,
|
|
2400
|
|
],
|
|
"referencedDeclaration": 2399,
|
|
"src": "1793:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1503,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1793:46:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1504,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1793:46:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 1522,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 1513,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1509,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1506,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1493,
|
|
"src": "1924:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1507,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "1924:11:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1508,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1939:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "1924:16:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1512,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1510,
|
|
"name": "value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1491,
|
|
"src": "1944:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1511,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1952:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "1944:9:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "1924:29:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "||",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 1521,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1517,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1514,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1493,
|
|
"src": "1957:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1515,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "1957:11:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1516,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1971:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "1957:15:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1520,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1518,
|
|
"name": "value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1491,
|
|
"src": "1976:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1519,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1985:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "1976:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "1957:29:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "1924:62:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1505,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
2399,
|
|
2400
|
|
],
|
|
"referencedDeclaration": 2399,
|
|
"src": "1916:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1523,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1916:71:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1524,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1916:71:10"
|
|
},
|
|
{
|
|
"assignments": [],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1526,
|
|
"name": "token",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "1997:13:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1525,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1997:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1527,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "1997:13:10"
|
|
},
|
|
{
|
|
"assignments": [],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1529,
|
|
"name": "receiver",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "2020:16:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1528,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2020:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1530,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2020:16:10"
|
|
},
|
|
{
|
|
"assignments": [],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1532,
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "2046:14:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1531,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2046:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1533,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2046:14:10"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1537,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1534,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1493,
|
|
"src": "2074:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1535,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "2074:11:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1536,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2089:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "2074:16:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"id": 1565,
|
|
"nodeType": "Block",
|
|
"src": "2195:413:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1553,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1551,
|
|
"name": "token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1526,
|
|
"src": "2209:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1552,
|
|
"name": "to",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1489,
|
|
"src": "2217:2:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "2209:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1554,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2209:10:10"
|
|
},
|
|
{
|
|
"assignments": [],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1556,
|
|
"name": "functionIdentifier",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "2233:25:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
},
|
|
"typeName": {
|
|
"id": 1555,
|
|
"name": "bytes4",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2233:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1557,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2233:25:10"
|
|
},
|
|
{
|
|
"externalReferences": [
|
|
{
|
|
"functionIdentifier": {
|
|
"declaration": 1556,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "2367:18:10",
|
|
"valueSize": 1
|
|
}
|
|
},
|
|
{
|
|
"data": {
|
|
"declaration": 1493,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "2399:4:10",
|
|
"valueSize": 1
|
|
}
|
|
},
|
|
{
|
|
"receiver": {
|
|
"declaration": 1529,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "2428:8:10",
|
|
"valueSize": 1
|
|
}
|
|
},
|
|
{
|
|
"amount": {
|
|
"declaration": 1532,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "2479:6:10",
|
|
"valueSize": 1
|
|
}
|
|
},
|
|
{
|
|
"data": {
|
|
"declaration": 1493,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "2450:4:10",
|
|
"valueSize": 1
|
|
}
|
|
},
|
|
{
|
|
"data": {
|
|
"declaration": 1493,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "2499:4:10",
|
|
"valueSize": 1
|
|
}
|
|
}
|
|
],
|
|
"id": 1558,
|
|
"nodeType": "InlineAssembly",
|
|
"operations": "{\n functionIdentifier := mload(add(data, 0x20))\n receiver := mload(add(data, 0x24))\n amount := mload(add(data, 0x44))\n}",
|
|
"src": "2340:205:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
},
|
|
"id": 1562,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1560,
|
|
"name": "functionIdentifier",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1556,
|
|
"src": "2546:18:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1561,
|
|
"name": "TRANSFER_FUNCTION_IDENTIFIER",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1421,
|
|
"src": "2568:28:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"src": "2546:50:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1559,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
2399,
|
|
2400
|
|
],
|
|
"referencedDeclaration": 2399,
|
|
"src": "2538:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1563,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2538:59:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1564,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2538:59:10"
|
|
}
|
|
]
|
|
},
|
|
"id": 1566,
|
|
"nodeType": "IfStatement",
|
|
"src": "2070:538:10",
|
|
"trueBody": {
|
|
"id": 1550,
|
|
"nodeType": "Block",
|
|
"src": "2092:89:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1540,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1538,
|
|
"name": "token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1526,
|
|
"src": "2106:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1539,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2114:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "2106:9:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1541,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2106:9:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1544,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1542,
|
|
"name": "receiver",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1529,
|
|
"src": "2129:8:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1543,
|
|
"name": "to",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1489,
|
|
"src": "2140:2:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "2129:13:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1545,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2129:13:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1548,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1546,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1532,
|
|
"src": "2156:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1547,
|
|
"name": "value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1491,
|
|
"src": "2165:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "2156:14:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1549,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2156:14:10"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 1570,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1568,
|
|
"name": "receiver",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1529,
|
|
"src": "2625:8:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1569,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2637:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "2625:13:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1567,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
2399,
|
|
2400
|
|
],
|
|
"referencedDeclaration": 2399,
|
|
"src": "2617:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1571,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2617:22:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1572,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2617:22:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1576,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1574,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1532,
|
|
"src": "2657:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1575,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2666:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "2657:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1573,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
2399,
|
|
2400
|
|
],
|
|
"referencedDeclaration": 2399,
|
|
"src": "2649:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1577,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2649:19:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1578,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2649:19:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1581,
|
|
"name": "token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1526,
|
|
"src": "2763:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1582,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1532,
|
|
"src": "2770:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1580,
|
|
"name": "isUnderLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1680,
|
|
"src": "2750:12:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
|
|
"typeString": "function (address,uint256) returns (bool)"
|
|
}
|
|
},
|
|
"id": 1583,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2750:27:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1579,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
2399,
|
|
2400
|
|
],
|
|
"referencedDeclaration": 2399,
|
|
"src": "2742:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1584,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2742:36:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1585,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2742:36:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1591,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1586,
|
|
"name": "dailyLimits",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1425,
|
|
"src": "2788:11:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$",
|
|
"typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
|
|
}
|
|
},
|
|
"id": 1588,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1587,
|
|
"name": "token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1526,
|
|
"src": "2800:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "2788:18:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage ref"
|
|
}
|
|
},
|
|
"id": 1589,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "spentToday",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1429,
|
|
"src": "2788:29:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "+=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1590,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1532,
|
|
"src": "2821:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "2788:39:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1592,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2788:39:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1596,
|
|
"name": "to",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1489,
|
|
"src": "2879:2:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1597,
|
|
"name": "value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1491,
|
|
"src": "2883:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1598,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1493,
|
|
"src": "2890:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1599,
|
|
"name": "Enum",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 6,
|
|
"src": "2896:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_Enum_$6_$",
|
|
"typeString": "type(contract Enum)"
|
|
}
|
|
},
|
|
"id": 1600,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "Operation",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 5,
|
|
"src": "2896:14:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_enum$_Operation_$5_$",
|
|
"typeString": "type(enum Enum.Operation)"
|
|
}
|
|
},
|
|
"id": 1601,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberName": "Call",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "2896:19:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_enum$_Operation_$5",
|
|
"typeString": "enum Enum.Operation"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_enum$_Operation_$5",
|
|
"typeString": "enum Enum.Operation"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1594,
|
|
"name": "manager",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 588,
|
|
"src": "2845:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ModuleManager_$971",
|
|
"typeString": "contract ModuleManager"
|
|
}
|
|
},
|
|
"id": 1595,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "execTransactionFromModule",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 798,
|
|
"src": "2845:33:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$returns$_t_bool_$",
|
|
"typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)"
|
|
}
|
|
},
|
|
"id": 1602,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2845:71:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1593,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
2399,
|
|
2400
|
|
],
|
|
"referencedDeclaration": 2399,
|
|
"src": "2837:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1603,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2837:80:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1604,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2837:80:10"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 1606,
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"isDeclaredConst": false,
|
|
"modifiers": [],
|
|
"name": "executeInternal",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 1494,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1487,
|
|
"name": "sender",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "1630:14:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1486,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1630:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1489,
|
|
"name": "to",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "1646:10:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1488,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1646:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1491,
|
|
"name": "value",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "1658:13:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1490,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1658:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1493,
|
|
"name": "data",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1606,
|
|
"src": "1673:10:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 1492,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1673:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1629:55:10"
|
|
},
|
|
"payable": false,
|
|
"returnParameters": {
|
|
"id": 1495,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "1706:0:10"
|
|
},
|
|
"scope": 1694,
|
|
"src": "1605:1319:10",
|
|
"stateMutability": "nonpayable",
|
|
"superFunction": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1623,
|
|
"nodeType": "Block",
|
|
"src": "3393:61:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1616,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2396,
|
|
"src": "3419:3:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1617,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "3419:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1618,
|
|
"name": "to",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1608,
|
|
"src": "3431:2:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1619,
|
|
"name": "value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1610,
|
|
"src": "3435:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1620,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1612,
|
|
"src": "3442:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"id": 1615,
|
|
"name": "executeInternal",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1606,
|
|
"src": "3403:15:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
|
|
"typeString": "function (address,address,uint256,bytes memory)"
|
|
}
|
|
},
|
|
"id": 1621,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3403:44:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1622,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3403:44:10"
|
|
}
|
|
]
|
|
},
|
|
"documentation": "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param to Receiver address in case of Ether transfer, token address in case of a token transfer.\n @param value Ether value in case of an Ether transfer.\n @param data Encoded token transfer. Empty in case of Ether transfer.\n @return Returns if transaction can be executed.",
|
|
"id": 1624,
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"isDeclaredConst": false,
|
|
"modifiers": [],
|
|
"name": "executeDailyLimit",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 1613,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1608,
|
|
"name": "to",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1624,
|
|
"src": "3335:10:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1607,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3335:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1610,
|
|
"name": "value",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1624,
|
|
"src": "3347:13:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1609,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3347:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1612,
|
|
"name": "data",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1624,
|
|
"src": "3362:10:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 1611,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3362:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3334:39:10"
|
|
},
|
|
"payable": false,
|
|
"returnParameters": {
|
|
"id": 1614,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "3393:0:10"
|
|
},
|
|
"scope": 1694,
|
|
"src": "3308:146:10",
|
|
"stateMutability": "nonpayable",
|
|
"superFunction": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1679,
|
|
"nodeType": "Block",
|
|
"src": "3557:391:10",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1634
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1634,
|
|
"name": "dailyLimit",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1680,
|
|
"src": "3567:29:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "storage",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1633,
|
|
"name": "DailyLimit",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 1432,
|
|
"src": "3567:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1638,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1635,
|
|
"name": "dailyLimits",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1425,
|
|
"src": "3599:11:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$",
|
|
"typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)"
|
|
}
|
|
},
|
|
"id": 1637,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1636,
|
|
"name": "token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1626,
|
|
"src": "3611:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "3599:18:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage ref"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "3567:50:10"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1643,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 1639,
|
|
"name": "today",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1693,
|
|
"src": "3631:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
|
|
"typeString": "function () view returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1640,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3631:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1641,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1634,
|
|
"src": "3641:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage pointer"
|
|
}
|
|
},
|
|
"id": 1642,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "lastDay",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1431,
|
|
"src": "3641:18:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "3631:28:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1658,
|
|
"nodeType": "IfStatement",
|
|
"src": "3627:126:10",
|
|
"trueBody": {
|
|
"id": 1657,
|
|
"nodeType": "Block",
|
|
"src": "3661:92:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1649,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1644,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1634,
|
|
"src": "3675:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage pointer"
|
|
}
|
|
},
|
|
"id": 1646,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "lastDay",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1431,
|
|
"src": "3675:18:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 1647,
|
|
"name": "today",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1693,
|
|
"src": "3696:5:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
|
|
"typeString": "function () view returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1648,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3696:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "3675:28:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1650,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3675:28:10"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1655,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1651,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1634,
|
|
"src": "3717:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage pointer"
|
|
}
|
|
},
|
|
"id": 1653,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "spentToday",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1429,
|
|
"src": "3717:21:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1654,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3741:1:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "3717:25:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1656,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3717:25:10"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 1673,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1665,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1662,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1659,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1634,
|
|
"src": "3769:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage pointer"
|
|
}
|
|
},
|
|
"id": 1660,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "spentToday",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1429,
|
|
"src": "3769:21:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1661,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1628,
|
|
"src": "3793:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "3769:30:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1663,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1634,
|
|
"src": "3803:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage pointer"
|
|
}
|
|
},
|
|
"id": 1664,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "dailyLimit",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1427,
|
|
"src": "3803:21:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "3769:55:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1672,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1669,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1666,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1634,
|
|
"src": "3840:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage pointer"
|
|
}
|
|
},
|
|
"id": 1667,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "spentToday",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1429,
|
|
"src": "3840:21:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1668,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1628,
|
|
"src": "3864:6:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "3840:30:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1670,
|
|
"name": "dailyLimit",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1634,
|
|
"src": "3873:10:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr",
|
|
"typeString": "struct DailyLimitModule.DailyLimit storage pointer"
|
|
}
|
|
},
|
|
"id": 1671,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "spentToday",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 1429,
|
|
"src": "3873:21:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "3840:54:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "3769:125:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1676,
|
|
"nodeType": "IfStatement",
|
|
"src": "3762:157:10",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 1674,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3915:4:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"functionReturnParameters": 1632,
|
|
"id": 1675,
|
|
"nodeType": "Return",
|
|
"src": "3908:11:10"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "66616c7365",
|
|
"id": 1677,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3936:5:10",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "false"
|
|
},
|
|
"functionReturnParameters": 1632,
|
|
"id": 1678,
|
|
"nodeType": "Return",
|
|
"src": "3929:12:10"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 1680,
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"isDeclaredConst": false,
|
|
"modifiers": [],
|
|
"name": "isUnderLimit",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 1629,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1626,
|
|
"name": "token",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1680,
|
|
"src": "3482:13:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1625,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3482:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1628,
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1680,
|
|
"src": "3497:14:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1627,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3497:7:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3481:31:10"
|
|
},
|
|
"payable": false,
|
|
"returnParameters": {
|
|
"id": 1632,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1631,
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1680,
|
|
"src": "3547:4:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1630,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3547:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3546:6:10"
|
|
},
|
|
"scope": 1694,
|
|
"src": "3460:488:10",
|
|
"stateMutability": "nonpayable",
|
|
"superFunction": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1692,
|
|
"nodeType": "Block",
|
|
"src": "4112:44:10",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1690,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1685,
|
|
"name": "now",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2398,
|
|
"src": "4129:3:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1688,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1686,
|
|
"name": "now",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2398,
|
|
"src": "4136:3:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "%",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1687,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "4142:6:10",
|
|
"subdenomination": "days",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_86400_by_1",
|
|
"typeString": "int_const 86400"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "4136:12:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"id": 1689,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "4135:14:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "4129:20:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1684,
|
|
"id": 1691,
|
|
"nodeType": "Return",
|
|
"src": "4122:27:10"
|
|
}
|
|
]
|
|
},
|
|
"documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.",
|
|
"id": 1693,
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"isDeclaredConst": true,
|
|
"modifiers": [],
|
|
"name": "today",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 1681,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "4054:2:10"
|
|
},
|
|
"payable": false,
|
|
"returnParameters": {
|
|
"id": 1684,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1683,
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 1693,
|
|
"src": "4102:4:10",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1682,
|
|
"name": "uint",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4102:4:10",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4101:6:10"
|
|
},
|
|
"scope": 1694,
|
|
"src": "4040:116:10",
|
|
"stateMutability": "view",
|
|
"superFunction": null,
|
|
"visibility": "public"
|
|
}
|
|
],
|
|
"scope": 1695,
|
|
"src": "296:3862:10"
|
|
}
|
|
],
|
|
"src": "0:4159:10"
|
|
},
|
|
"compiler": {
|
|
"name": "solc",
|
|
"version": "0.4.23+commit.124ca40d.Emscripten.clang"
|
|
},
|
|
"networks": {
|
|
"4": {
|
|
"events": {},
|
|
"links": {},
|
|
"address": "0x831ec5aaad91423fb78d3e1ad1fcf9d5006774df",
|
|
"transactionHash": "0xdae4c3a40843ab9bf9e62becc882075695bb8c0bcc3f3a3aa3016559b63f90e4"
|
|
},
|
|
"1525950336085": {
|
|
"events": {},
|
|
"links": {},
|
|
"address": "0xe52c225329d3fb9f6933bd52e7067a24d20f7983",
|
|
"transactionHash": "0xaffd9cdbf1bd14f5f349af2782a1b4dbebd9ac97abedbcfb9aee5fb1707afe96"
|
|
},
|
|
"1526283540628": {
|
|
"events": {},
|
|
"links": {},
|
|
"address": "0x452dd8d6f81786c3ad3ec3cbcf024687659c682a",
|
|
"transactionHash": "0xaffd9cdbf1bd14f5f349af2782a1b4dbebd9ac97abedbcfb9aee5fb1707afe96"
|
|
},
|
|
"1526478212260": {
|
|
"events": {},
|
|
"links": {},
|
|
"address": "0x180cb429f1d8b3e99b718640d3895155e2190452",
|
|
"transactionHash": "0xefeddc1db847371ef66ea36caf0a583b6bb2b9a08fdbeb73ee0f1563131ca3e2"
|
|
},
|
|
"1526973574996": {
|
|
"events": {},
|
|
"links": {},
|
|
"address": "0xdf2e7bbb8f57db7d8b11f9d8a77b0754979111c1",
|
|
"transactionHash": "0xefeddc1db847371ef66ea36caf0a583b6bb2b9a08fdbeb73ee0f1563131ca3e2"
|
|
}
|
|
},
|
|
"schemaVersion": "2.0.0",
|
|
"updatedAt": "2018-05-22T07:20:22.997Z"
|
|
} |