2018-05-31 13:01:02 +00:00
{
"contractName" : "ModuleManager" ,
"abi" : [
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "SENTINEL_MODULES" ,
"outputs" : [
{
"name" : "" ,
"type" : "address"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "NAME" ,
"outputs" : [
{
"name" : "" ,
"type" : "string"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "VERSION" ,
"outputs" : [
{
"name" : "" ,
"type" : "string"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"payable" : true ,
"stateMutability" : "payable" ,
"type" : "fallback"
} ,
{
"anonymous" : false ,
"inputs" : [
{
"indexed" : false ,
"name" : "newContract" ,
"type" : "address"
}
] ,
"name" : "ContractCreation" ,
"type" : "event"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "module" ,
"type" : "address"
}
] ,
"name" : "enableModule" ,
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "prevModule" ,
"type" : "address"
} ,
{
"name" : "module" ,
"type" : "address"
}
] ,
"name" : "disableModule" ,
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "to" ,
"type" : "address"
} ,
{
"name" : "value" ,
"type" : "uint256"
} ,
{
"name" : "data" ,
"type" : "bytes"
} ,
{
"name" : "operation" ,
"type" : "uint8"
}
] ,
"name" : "execTransactionFromModule" ,
"outputs" : [
{
"name" : "success" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "getModules" ,
"outputs" : [
{
"name" : "" ,
"type" : "address[]"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
}
] ,
2018-08-20 07:59:16 +00:00
"bytecode" : " 0 x 608060405234801561001057600080 f d 5 b 50611165806100206000396000 f 300608060405260043610610083576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 168063468721 a 714610085578063610 b 59251461013 d 57806385e332 c d 14610180578063 a 3 f 4 d f 7e146101 d 7578063 b 2494 d f 314610267578063e009 c f d e 146102 d 3578063 f f a 1 a d 7414610336575 b 0 0 5 b 34801561009157600080 f d 5 b 50610123600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919080359060200190929190803590602001908201803590602001908080601 f 0 160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560 f f 1690602001909291905050506103 c 6565 b 604051808215151515815260200191505060405180910390 f 35 b 34801561014957600080 f d 5 b 5061017e600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909291905050506104 f 1565 b 0 0 5 b 34801561018 c 57600080 f d 5 b 506101956108 c b 565 b 604051808273 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200191505060405180910390 f 35 b 3480156101e357600080 f d 5 b 506101 e c 6108 d 0 565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 8381101561022 c 578082015181840152602081019050610211565 b 50505050905090810190601 f 1680156102595780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 34801561027357600080 f d 5 b 5061027 c 610909565 b 6040518080602001828103825283818151815260200191508051906020019060200280838360005 b 838110156102 b f 5780820151818401526020810190506102 a 4565 b 505050509050019250505060405180910390 f 35 b 3480156102 d f 57600080 f d 5 b 50610334600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190505050610 b a c 565 b 0 0 5 b 34801561034257600080 f d 5 b 5061034 b 610 f c 1565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 8381101561038 b 578082015181840152602081019050610370565 b 50505050905090810190601 f 1680156103 b 85780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 6000806000803373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002060009054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16141515156104 d a 576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81526004018080602001828103825260308152602001807 f 4 d 6574686 f 642063616e206 f 6e6 c 792062652063616 c 6 c 65642066726 f 6 d 206181526020017 f 6e20656 e 61626 c 6564206 d 6 f 64756 c 650000000000000000000000000000000081525060400191505060405180910390 f d 5 b 6104e7858585855 a 610 f f a 565 b 9050949350505050565 b 3073 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 163373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 161415156105 b a 576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 815260040180806020018281038252602 c 8152602001807 f 4 d 6574686 f 642063616e206 f 6e6 c 792062652063616 c 6 c 65642066726 f 6 d 207481526020017 f 68697320636 f 6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390 f d 5 b 60008173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 161415801561060e5750600173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 168173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1614155 b 1515610682576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 815260040180806020018281038252601 f 8152602001807 f 496e76616 c 6964206 d 6 f 64756 c 6520616464726573732070726 f 76696465640081525060200191505060405180910390 f d 5 b 60008060008373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002060009054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1614151561076e576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 815260040180806020018281038252601 d 8152602001807 f 4 d 6 f 64756 c 652068617320616 c 7265616479206265656e20616464656400000081525060200191505060405180910390 f d 5 b 600080600173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002060009054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 166000808373 f f f f f f
"deployedBytecode" : " 0 x 608060405260043610610083576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 168063468721 a 714610085578063610 b 59251461013 d 57806385e332 c d 14610180578063 a 3 f 4 d f 7e146101 d 7578063 b 2494 d f 314610267578063e009 c f d e 146102 d 3578063 f f a 1 a d 7414610336575 b 0 0 5 b 34801561009157600080 f d 5 b 50610123600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919080359060200190929190803590602001908201803590602001908080601 f 0 160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560 f f 1690602001909291905050506103 c 6565 b 604051808215151515815260200191505060405180910390 f 35 b 34801561014957600080 f d 5 b 5061017e600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909291905050506104 f 1565 b 0 0 5 b 34801561018 c 57600080 f d 5 b 506101956108 c b 565 b 604051808273 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200191505060405180910390 f 35 b 3480156101e357600080 f d 5 b 506101 e c 6108 d 0 565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 8381101561022 c 578082015181840152602081019050610211565 b 50505050905090810190601 f 1680156102595780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 34801561027357600080 f d 5 b 5061027 c 610909565 b 6040518080602001828103825283818151815260200191508051906020019060200280838360005 b 838110156102 b f 5780820151818401526020810190506102 a 4565 b 505050509050019250505060405180910390 f 35 b 3480156102 d f 57600080 f d 5 b 50610334600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190505050610 b a c 565 b 0 0 5 b 34801561034257600080 f d 5 b 5061034 b 610 f c 1565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 8381101561038 b 578082015181840152602081019050610370565 b 50505050905090810190601 f 1680156103 b 85780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 6000806000803373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002060009054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16141515156104 d a 576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81526004018080602001828103825260308152602001807 f 4 d 6574686 f 642063616e206 f 6e6 c 792062652063616 c 6 c 65642066726 f 6 d 206181526020017 f 6e20656 e 61626 c 6564206 d 6 f 64756 c 650000000000000000000000000000000081525060400191505060405180910390 f d 5 b 6104e7858585855 a 610 f f a 565 b 9050949350505050565 b 3073 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 163373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 161415156105 b a 576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 815260040180806020018281038252602 c 8152602001807 f 4 d 6574686 f 642063616e206 f 6e6 c 792062652063616 c 6 c 65642066726 f 6 d 207481526020017 f 68697320636 f 6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390 f d 5 b 60008173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 161415801561060e5750600173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 168173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1614155 b 1515610682576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 815260040180806020018281038252601 f 8152602001807 f 496e76616 c 6964206 d 6 f 64756 c 6520616464726573732070726 f 76696465640081525060200191505060405180910390 f d 5 b 60008060008373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002060009054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1614151561076e576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 815260040180806020018281038252601 d 8152602001807 f 4 d 6 f 64756 c 652068617320616 c 7265616479206265656e20616464656400000081525060200191505060405180910390 f d 5 b 600080600173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002060009054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 166000808373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f
"sourceMap" : "332:3628:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;332:3628:10;;;;;;;" ,
"deployedSourceMap" : "332:3628:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2712:429:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:459:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;390:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;390:46: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;390:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3220:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3220:738: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;3220:738:10;;;;;;;;;;;;;;;;;1902:474;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1902:474:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;442:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;442: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;442:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:429;2844:12;2952:1;2929:7;:19;2937:10;2929:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2921:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3088:46;3096:2;3100:5;3107:4;3113:9;3124;3088:7;:46::i;:::-;3078:56;;2712:429;;;;;;:::o;1182:459::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:10;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1182:459;:::o;488:55::-;539:3;488:55;:::o;390:46::-;;;;;;;;;;;;;;;;;;;;:::o;3220:738::-;3287:9;3346:19;3379:21;3579:22;3368:1;3346:23;;3403:7;:25;539:3;3403:25;;;;;;;;;;;;;;;;;;;;;;;;;3379:49;;3438:132;539:3;3444:33;;:13;:33;;;;3438:132;;;3509:7;:22;3517:13;3509:22;;;;;;;;;;;;;;;;;;;;;;;;;3493:38;;3545:14;;;;;;;3438:132;;;3618:11;3604:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3604:26:10;;;;3579:51;;3688:1;3674:15;;3715:7;:25;539:3;3715:25;;;;;;;;;;;;;;;;;;;;;;;;;3699:41;;3750:180;539:3;3756:33;;:13;:33;;;;3750:180;;;3826:13;3805:5;3811:11;3805:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3869:7;:22;3877:13;3869:22;;;;;;;;;;;;;;;;;;;;;;;;;3853:38;;3905:14;;;;;;;3750:180;;;3946:5;3939:12;;3220:738;;;;:::o;1902:474::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2116:1:10;2105:6;2097:20;;;;:59;;;;;539:3;2121:35;;2129:6;2121:35;;;;2097:59;2089:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:6;2210:38;;:7;:19;2218:10;2210:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2202:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2325:7;:15;2333:6;2325:15;;;;;;;;;;;;;;;;;;;;;;;;;2303:7;:19;2311:10;2303:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2368:1;2350:7;:15;2358:6;2350:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1902:474;;:::o;442:40::-;;;;;;;;;;;;;;;;;;;;:::o;390:548:3:-;521:12;792:19;566;553:32;;;;;;;;:9;:32;;;;;;;;;549:383;;;609:35;621:2;625:5;632:4;638:5;609:11;:35::i;:::-;599:45;;549:383;;;676:27;663:40;;;;;;;;:9;:40;;;;;;;;;659:273;;;727:36;747:2;751:4;757:5;727:19;:36::i;:::-;717:46;;659:273;;;814:19;828:4;814:13;:19::i;:::-;792:41;;872:1;857:11;:16;;;;847:26;;892:29;909:11;892:29;;;;;;;;;;;;;;;;;;;;;;659:273;549:383;390:548;;;;;;;;:::o;944:309::-;1053:12;1235:1;1232;1225:4;1219:11;1212:4;1206;1202:15;1195:5;1191:2;1184:5;1179:58;1168:69;;1154:93;;;;;;:::o;1259:303::-;1361:12;1544:1;1541;1534:4;1528:11;1521:4;1515;1511:15;1507:2;1500:5;1487:59;1476:70;;1462:94;;;;;:::o;1568:261::-;1637:19;1807:4;1801:11;1794:4;1788;1784:15;1781:1;1774:39;1759:54;;1745:78;;;:::o" ,
"source" : "pragma solidity 0.4.24;\nimport \"./Enum.sol\";\nimport \"./Executor.sol\";\nimport \"./Module.sol\";\nimport \"./SelfAuthorized.sol\";\n\n\n/// @title Module Manager - A contract that manages modules that can execute transactions via this contract\n/// @author Stefan George - <stefan@gnosis.pm>\n/// @author Richard Meissner - <richard@gnosis.pm>\ncontract ModuleManager is SelfAuthorized, Executor {\n\n string public constant NAME = \"Module Manager\";\n string public constant VERSION = \"0.0.1\";\n address public constant SENTINEL_MODULES = address(0x1);\n\n mapping (address => address) internal modules;\n \n function setupModules(address to, bytes data)\n internal\n {\n require(modules[SENTINEL_MODULES] == 0, \"Modules have already been initialized\");\n modules[SENTINEL_MODULES] = SENTINEL_MODULES;\n if (to != 0)\n // Setup has to complete successfully or transaction fails.\n require(executeDelegateCall(to, data, gasleft()), \"Could not finish initialization\");\n }\n\n /// @dev Allows to add a module to the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param module Module to be whitelisted.\n function enableModule(Module module)\n public\n authorized\n {\n // Module address cannot be null or sentinel.\n require(address(module) != 0 && address(module) != SENTINEL_MODULES, \"Invalid module address provided\");\n // Module cannot be added twice.\n require(modules[module] == 0, \"Module has already been added\");\n modules[module] = modules[SENTINEL_MODULES];\n modules[SENTINEL_MODULES] = module;\n }\n\n /// @dev Allows to remove a module from the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param prevModule Module that pointed to the module to be removed in the linked list\n /// @param module Module to be removed.\n function disableModule(Module prevModule, Module module)\n public\n authorized\n {\n // Validate module address and check that it corresponds to module index.\n require(address(module) != 0 && address(module) != SENTINEL_MODULES, \"Invalid module address provided\");\n require(modules[prevModule] == address(module), \"Invalid prevModule, module pair provided\");\n modules[prevModule] = modules[module];\n modules[module] = 0;\n }\n\n /// @dev Allows a Module to execute a Safe transaction without any further confirmations.\n /// @param to Destination address of module transaction.\n /// @param value Ether value of module transaction.\n /// @param data Data payload of module transaction.\n /// @param operation Operation type of module transaction.\n function execTransactionFromModule(address to, uint256 value, bytes data, Enum.Operation operation)\n public\n returns (bool success)\n {\n // Only whitelisted modules are allowed.\n require(modules[msg.sender] != 0, \"Method can only be called from an enabled module\" ) ; \ n // Execute transaction without further confirmations.\n success = execute(to, value, data, operation, gasleft());\n }\n\n /// @dev Returns array of modules.\n /// @return Array of modules.\n function getModules()\n public\n view\n returns (address[])\n {\n // Calculate module count\n uint256 moduleCount = 0;\n address currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n currentModule = modules[currentModule];\n moduleCount ++;\n }\n address[] memory array = new address[](moduleCount);\n\n // populate return array\n moduleCount = 0;\n currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n array[moduleCount] = currentModule;\n currentModule = modules[currentModule];\n moduleCount ++;\n }\n return array;\n }
2018-05-31 13:01:02 +00:00
"sourcePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol" ,
"ast" : {
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol" ,
"exportedSymbols" : {
"ModuleManager" : [
2018-08-20 07:59:16 +00:00
1180
2018-05-31 13:01:02 +00:00
]
} ,
2018-08-20 07:59:16 +00:00
"id" : 1181 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "SourceUnit" ,
"nodes" : [
{
2018-08-20 07:59:16 +00:00
"id" : 915 ,
2018-05-31 13:01:02 +00:00
"literals" : [
"solidity" ,
"0.4" ,
".24"
] ,
"nodeType" : "PragmaDirective" ,
2018-08-20 07:59:16 +00:00
"src" : "0:23:10"
2018-05-31 13:01:02 +00:00
} ,
{
2018-08-20 07:59:16 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol" ,
"file" : "./Enum.sol" ,
"id" : 916 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ImportDirective" ,
2018-08-20 07:59:16 +00:00
"scope" : 1181 ,
"sourceUnit" : 31 ,
"src" : "24:20:10" ,
2018-05-31 13:01:02 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
2018-08-20 07:59:16 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Executor.sol" ,
"file" : "./Executor.sol" ,
"id" : 917 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ImportDirective" ,
2018-08-20 07:59:16 +00:00
"scope" : 1181 ,
"sourceUnit" : 154 ,
"src" : "45:24:10" ,
2018-05-31 13:01:02 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
2018-08-20 07:59:16 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol" ,
"file" : "./Module.sol" ,
"id" : 918 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ImportDirective" ,
2018-08-20 07:59:16 +00:00
"scope" : 1181 ,
"sourceUnit" : 914 ,
"src" : "70:22:10" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol" ,
"file" : "./SelfAuthorized.sol" ,
"id" : 919 ,
"nodeType" : "ImportDirective" ,
"scope" : 1181 ,
"sourceUnit" : 1766 ,
"src" : "93:30:10" ,
2018-05-31 13:01:02 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
2018-08-20 07:59:16 +00:00
"id" : 920 ,
2018-05-31 13:01:02 +00:00
"name" : "SelfAuthorized" ,
"nodeType" : "UserDefinedTypeName" ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1765 ,
"src" : "358:14:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_SelfAuthorized_$1765" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract SelfAuthorized"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 921 ,
"nodeType" : "InheritanceSpecifier" ,
"src" : "358:14:10"
} ,
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
"id" : 922 ,
"name" : "Executor" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 153 ,
"src" : "374:8:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Executor_$153" ,
"typeString" : "contract Executor"
}
} ,
"id" : 923 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "InheritanceSpecifier" ,
2018-08-20 07:59:16 +00:00
"src" : "374:8:10"
2018-05-31 13:01:02 +00:00
}
] ,
"contractDependencies" : [
2018-08-20 07:59:16 +00:00
153 ,
37 ,
1765
2018-05-31 13:01:02 +00:00
] ,
"contractKind" : "contract" ,
"documentation" : "@title Module Manager - A contract that manages modules that can execute transactions via this contract\n @author Stefan George - <stefan@gnosis.pm>\n @author Richard Meissner - <richard@gnosis.pm>" ,
"fullyImplemented" : true ,
2018-08-20 07:59:16 +00:00
"id" : 1180 ,
2018-05-31 13:01:02 +00:00
"linearizedBaseContracts" : [
2018-08-20 07:59:16 +00:00
1180 ,
153 ,
37 ,
1765
2018-05-31 13:01:02 +00:00
] ,
"name" : "ModuleManager" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"constant" : true ,
2018-08-20 07:59:16 +00:00
"id" : 926 ,
2018-05-31 13:01:02 +00:00
"name" : "NAME" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1180 ,
"src" : "390:46:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 924 ,
2018-05-31 13:01:02 +00:00
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "390:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "4d6f64756c65204d616e61676572" ,
2018-08-20 07:59:16 +00:00
"id" : 925 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "420:16:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_12aaa44a1bae367a1e1d9881f5d80283afded6373c2a1ca586db420944084efb" ,
"typeString" : "literal_string \"Module Manager\""
} ,
"value" : "Module Manager"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
2018-08-20 07:59:16 +00:00
"id" : 929 ,
2018-05-31 13:01:02 +00:00
"name" : "VERSION" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1180 ,
"src" : "442:40:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 927 ,
2018-05-31 13:01:02 +00:00
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "442:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "302e302e31" ,
2018-08-20 07:59:16 +00:00
"id" : 928 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "475:7:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885" ,
"typeString" : "literal_string \"0.0.1\""
} ,
"value" : "0.0.1"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
2018-08-20 07:59:16 +00:00
"id" : 934 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1180 ,
"src" : "488:55:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 930 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "488:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "307831" ,
2018-08-20 07:59:16 +00:00
"id" : 932 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "539:3:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
} ,
"value" : "0x1"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 931 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-08-20 07:59:16 +00:00
"src" : "531:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 933 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "531:12:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 938 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1180 ,
"src" : "550:45:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 937 ,
2018-05-31 13:01:02 +00:00
"keyType" : {
2018-08-20 07:59:16 +00:00
"id" : 935 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "559:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
2018-08-20 07:59:16 +00:00
"src" : "550:28:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
} ,
"valueType" : {
2018-08-20 07:59:16 +00:00
"id" : 936 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "570:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"body" : {
2018-08-20 07:59:16 +00:00
"id" : 974 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-08-20 07:59:16 +00:00
"src" : "673:342:10" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 950 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 946 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "691:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 948 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 947 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 934 ,
"src" : "699:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "691:25:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-08-20 07:59:16 +00:00
"id" : 949 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "720:1:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-08-20 07:59:16 +00:00
"src" : "691:30:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564" ,
2018-08-20 07:59:16 +00:00
"id" : 951 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "723:39:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77" ,
"typeString" : "literal_string \"Modules have already been initialized\""
} ,
"value" : "Modules have already been initialized"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77" ,
"typeString" : "literal_string \"Modules have already been initialized\""
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 945 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-08-20 07:59:16 +00:00
3831 ,
3832
2018-05-31 13:01:02 +00:00
] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 3832 ,
"src" : "683:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 952 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "683:80:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 953 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "683:80:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 958 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 954 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "773:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 956 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 955 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 934 ,
"src" : "781:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "773:25:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 957 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 934 ,
"src" : "801:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "773:44:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 959 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "773:44:10"
2018-05-31 13:01:02 +00:00
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 962 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 960 ,
2018-05-31 13:01:02 +00:00
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 940 ,
"src" : "831:2:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-08-20 07:59:16 +00:00
"id" : 961 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "837:1:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-08-20 07:59:16 +00:00
"src" : "831:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
2018-08-20 07:59:16 +00:00
"id" : 973 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "IfStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "827:181:10" ,
2018-05-31 13:01:02 +00:00
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 965 ,
2018-05-31 13:01:02 +00:00
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 940 ,
"src" : "952:2:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 966 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 942 ,
"src" : "956:4:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2018-08-20 07:59:16 +00:00
"id" : 967 ,
2018-05-31 13:01:02 +00:00
"name" : "gasleft" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 3821 ,
"src" : "962:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_gasleft_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 968 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "962:9:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 964 ,
2018-05-31 13:01:02 +00:00
"name" : "executeDelegateCall" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 143 ,
"src" : "932:19:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$" ,
"typeString" : "function (address,bytes memory,uint256) returns (bool)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 969 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "932:40:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e" ,
2018-08-20 07:59:16 +00:00
"id" : 970 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "974:33:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa" ,
"typeString" : "literal_string \"Could not finish initialization\""
} ,
"value" : "Could not finish initialization"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa" ,
"typeString" : "literal_string \"Could not finish initialization\""
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 963 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-08-20 07:59:16 +00:00
3831 ,
3832
2018-05-31 13:01:02 +00:00
] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 3832 ,
"src" : "924:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 971 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "924:84:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 972 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "924:84:10"
2018-05-31 13:01:02 +00:00
}
}
]
} ,
"documentation" : null ,
2018-08-20 07:59:16 +00:00
"id" : 975 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "setupModules" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-08-20 07:59:16 +00:00
"id" : 943 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 940 ,
2018-05-31 13:01:02 +00:00
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 975 ,
"src" : "628:10:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 939 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "628:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 942 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 975 ,
"src" : "640:10:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 941 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "640:5:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-08-20 07:59:16 +00:00
"src" : "627:24:10"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-08-20 07:59:16 +00:00
"id" : 944 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-08-20 07:59:16 +00:00
"src" : "673:0:10"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"scope" : 1180 ,
"src" : "606:409:10" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
2018-08-20 07:59:16 +00:00
"id" : 1020 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-08-20 07:59:16 +00:00
"src" : "1257:384:10" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
2018-08-20 07:59:16 +00:00
"id" : 993 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 987 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 984 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 977 ,
"src" : "1337:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 983 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-08-20 07:59:16 +00:00
"src" : "1329:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 985 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "1329:15:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-08-20 07:59:16 +00:00
"id" : 986 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "1348:1:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-08-20 07:59:16 +00:00
"src" : "1329:20:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 992 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 989 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 977 ,
"src" : "1361:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 988 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-08-20 07:59:16 +00:00
"src" : "1353:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 990 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "1353:15:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 991 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 934 ,
"src" : "1372:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "1353:35:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "1329:59:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c6964206d6f64756c6520616464726573732070726f7669646564" ,
2018-08-20 07:59:16 +00:00
"id" : 994 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "1390:33:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
} ,
"value" : "Invalid module address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 982 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-08-20 07:59:16 +00:00
3831 ,
3832
2018-05-31 13:01:02 +00:00
] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 3832 ,
"src" : "1321:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 995 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "1321:103:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 996 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "1321:103:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 1002 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 998 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "1483:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1000 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 999 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 977 ,
"src" : "1491:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "1483:15:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-08-20 07:59:16 +00:00
"id" : 1001 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "1502:1:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-08-20 07:59:16 +00:00
"src" : "1483:20:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6f64756c652068617320616c7265616479206265656e206164646564" ,
2018-08-20 07:59:16 +00:00
"id" : 1003 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "1505:31:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450" ,
"typeString" : "literal_string \"Module has already been added\""
} ,
"value" : "Module has already been added"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450" ,
"typeString" : "literal_string \"Module has already been added\""
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 997 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-08-20 07:59:16 +00:00
3831 ,
3832
2018-05-31 13:01:02 +00:00
] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 3832 ,
"src" : "1475:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1004 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "1475:62:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1005 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "1475:62:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1012 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1006 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "1547:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1008 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1007 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 977 ,
"src" : "1555:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "1547:15:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1009 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "1565:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1011 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1010 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 934 ,
"src" : "1573:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "1565:25:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "1547:43:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1013 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "1547:43:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1018 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1014 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "1600:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1016 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1015 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 934 ,
"src" : "1608:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "1600:25:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1017 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 977 ,
"src" : "1628:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "1600:34:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1019 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "1600:34:10"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Allows to add a module to the whitelist.\n This can only be done via a Safe transaction.\n @param module Module to be whitelisted." ,
2018-08-20 07:59:16 +00:00
"id" : 1021 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
2018-08-20 07:59:16 +00:00
"id" : 980 ,
2018-05-31 13:01:02 +00:00
"modifierName" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 979 ,
2018-05-31 13:01:02 +00:00
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1764 ,
"src" : "1242:10:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
2018-08-20 07:59:16 +00:00
"src" : "1242:10:10"
2018-05-31 13:01:02 +00:00
}
] ,
"name" : "enableModule" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-08-20 07:59:16 +00:00
"id" : 978 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 977 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1021 ,
"src" : "1204:13:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
2018-08-20 07:59:16 +00:00
"id" : 976 ,
2018-05-31 13:01:02 +00:00
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 913 ,
"src" : "1204:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-08-20 07:59:16 +00:00
"src" : "1203:15:10"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-08-20 07:59:16 +00:00
"id" : 981 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-08-20 07:59:16 +00:00
"src" : "1257:0:10"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"scope" : 1180 ,
"src" : "1182:459:10" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-08-20 07:59:16 +00:00
"id" : 1070 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-08-20 07:59:16 +00:00
"src" : "1997:379:10" ,
2018-05-31 13:01:02 +00:00
"statements" : [
2018-06-20 08:09:14 +00:00
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
2018-08-20 07:59:16 +00:00
"id" : 1041 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 1035 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1032 ,
2018-06-20 08:09:14 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1025 ,
"src" : "2105:6:10" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-06-20 08:09:14 +00:00
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-06-20 08:09:14 +00:00
"typeString" : "contract Module"
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 1031 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-08-20 07:59:16 +00:00
"src" : "2097:7:10" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 1033 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "2097:15:10" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-08-20 07:59:16 +00:00
"id" : 1034 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "2116:1:10" ,
2018-06-20 08:09:14 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-08-20 07:59:16 +00:00
"src" : "2097:20:10" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 1040 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1037 ,
2018-06-20 08:09:14 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1025 ,
"src" : "2129:6:10" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-06-20 08:09:14 +00:00
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-06-20 08:09:14 +00:00
"typeString" : "contract Module"
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 1036 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-08-20 07:59:16 +00:00
"src" : "2121:7:10" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 1038 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "2121:15:10" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1039 ,
2018-06-20 08:09:14 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 934 ,
"src" : "2140:16:10" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "2121:35:10" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "2097:59:10" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c6964206d6f64756c6520616464726573732070726f7669646564" ,
2018-08-20 07:59:16 +00:00
"id" : 1042 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "2158:33:10" ,
2018-06-20 08:09:14 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
} ,
"value" : "Invalid module address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 1030 ,
2018-06-20 08:09:14 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-08-20 07:59:16 +00:00
3831 ,
3832
2018-06-20 08:09:14 +00:00
] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 3832 ,
"src" : "2089:7:10" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1043 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "2089:103:10" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1044 ,
2018-06-20 08:09:14 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "2089:103:10"
2018-06-20 08:09:14 +00:00
} ,
2018-05-31 13:01:02 +00:00
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 1052 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1046 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "2210:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1048 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1047 ,
2018-05-31 13:01:02 +00:00
"name" : "prevModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1023 ,
"src" : "2218:10:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "2210:19:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1050 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1025 ,
"src" : "2241:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 1049 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-08-20 07:59:16 +00:00
"src" : "2233:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 1051 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "2233:15:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "2210:38:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564" ,
2018-08-20 07:59:16 +00:00
"id" : 1053 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "2250:42:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e" ,
"typeString" : "literal_string \"Invalid prevModule, module pair provided\""
} ,
"value" : "Invalid prevModule, module pair provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e" ,
"typeString" : "literal_string \"Invalid prevModule, module pair provided\""
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 1045 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-08-20 07:59:16 +00:00
3831 ,
3832
2018-05-31 13:01:02 +00:00
] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 3832 ,
"src" : "2202:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1054 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "2202:91:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1055 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "2202:91:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1062 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1056 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "2303:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1058 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1057 ,
2018-05-31 13:01:02 +00:00
"name" : "prevModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1023 ,
"src" : "2311:10:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "2303:19:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1059 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "2325:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1061 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1060 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1025 ,
"src" : "2333:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "2325:15:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "2303:37:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1063 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "2303:37:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1068 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1064 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "2350:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1066 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1065 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1025 ,
"src" : "2358:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "2350:15:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-08-20 07:59:16 +00:00
"id" : 1067 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "2368:1:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-08-20 07:59:16 +00:00
"src" : "2350:19:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1069 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "2350:19:10"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Allows to remove a module from the whitelist.\n This can only be done via a Safe transaction.\n @param prevModule Module that pointed to the module to be removed in the linked list\n @param module Module to be removed." ,
2018-08-20 07:59:16 +00:00
"id" : 1071 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1028 ,
2018-05-31 13:01:02 +00:00
"modifierName" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1027 ,
2018-05-31 13:01:02 +00:00
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1764 ,
"src" : "1982:10:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
2018-08-20 07:59:16 +00:00
"src" : "1982:10:10"
2018-05-31 13:01:02 +00:00
}
] ,
"name" : "disableModule" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-08-20 07:59:16 +00:00
"id" : 1026 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1023 ,
2018-05-31 13:01:02 +00:00
"name" : "prevModule" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1071 ,
"src" : "1925:17:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1022 ,
2018-05-31 13:01:02 +00:00
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 913 ,
"src" : "1925:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1025 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1071 ,
"src" : "1944:13:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1024 ,
2018-05-31 13:01:02 +00:00
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 913 ,
"src" : "1944:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-08-20 07:59:16 +00:00
"src" : "1924:34:10"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-08-20 07:59:16 +00:00
"id" : 1029 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-08-20 07:59:16 +00:00
"src" : "1997:0:10"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"scope" : 1180 ,
"src" : "1902:474:10" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-08-20 07:59:16 +00:00
"id" : 1105 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-08-20 07:59:16 +00:00
"src" : "2862:279:10" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 1090 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1085 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "2929:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1088 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1086 ,
2018-05-31 13:01:02 +00:00
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 3828 ,
"src" : "2937:3:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1087 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-08-20 07:59:16 +00:00
"src" : "2937:10:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "2929:19:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-08-20 07:59:16 +00:00
"id" : 1089 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "2952:1:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-08-20 07:59:16 +00:00
"src" : "2929:24:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65" ,
2018-08-20 07:59:16 +00:00
"id" : 1091 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "2955:50:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4" ,
"typeString" : "literal_string \"Method can only be called from an enabled module\""
} ,
"value" : "Method can only be called from an enabled module"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4" ,
"typeString" : "literal_string \"Method can only be called from an enabled module\""
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 1084 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-08-20 07:59:16 +00:00
3831 ,
3832
2018-05-31 13:01:02 +00:00
] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 3832 ,
"src" : "2921:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1092 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "2921:85:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1093 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "2921:85:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1103 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1094 ,
2018-05-31 13:01:02 +00:00
"name" : "success" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1082 ,
"src" : "3078:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1096 ,
2018-05-31 13:01:02 +00:00
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1073 ,
"src" : "3096:2:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1097 ,
2018-05-31 13:01:02 +00:00
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1075 ,
"src" : "3100:5:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1098 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1077 ,
"src" : "3107:4:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1099 ,
2018-05-31 13:01:02 +00:00
"name" : "operation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1079 ,
"src" : "3113:9:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_enum$_Operation_$29" ,
2018-05-31 13:01:02 +00:00
"typeString" : "enum Enum.Operation"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2018-08-20 07:59:16 +00:00
"id" : 1100 ,
2018-05-31 13:01:02 +00:00
"name" : "gasleft" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 3821 ,
"src" : "3124:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_gasleft_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1101 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "3124:9:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
{
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_enum$_Operation_$29" ,
2018-05-31 13:01:02 +00:00
"typeString" : "enum Enum.Operation"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 1095 ,
2018-05-31 13:01:02 +00:00
"name" : "execute" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 115 ,
"src" : "3088:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$" ,
2018-05-31 13:01:02 +00:00
"typeString" : "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1102 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "3088:46:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "3078:56:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1104 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "3078:56:10"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Allows a Module to execute a Safe transaction without any further confirmations.\n @param to Destination address of module transaction.\n @param value Ether value of module transaction.\n @param data Data payload of module transaction.\n @param operation Operation type of module transaction." ,
2018-08-20 07:59:16 +00:00
"id" : 1106 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "execTransactionFromModule" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-08-20 07:59:16 +00:00
"id" : 1080 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1073 ,
2018-05-31 13:01:02 +00:00
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1106 ,
"src" : "2747:10:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 1072 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "2747:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1075 ,
2018-05-31 13:01:02 +00:00
"name" : "value" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1106 ,
"src" : "2759:13:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 1074 ,
2018-05-31 13:01:02 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "2759:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1077 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1106 ,
"src" : "2774:10:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 1076 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "2774:5:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1079 ,
2018-05-31 13:01:02 +00:00
"name" : "operation" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1106 ,
"src" : "2786:24:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_enum$_Operation_$29" ,
2018-05-31 13:01:02 +00:00
"typeString" : "enum Enum.Operation"
} ,
"typeName" : {
"contractScope" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1078 ,
2018-05-31 13:01:02 +00:00
"name" : "Enum.Operation" ,
"nodeType" : "UserDefinedTypeName" ,
2018-06-28 17:13:59 +00:00
"referencedDeclaration" : 29 ,
2018-08-20 07:59:16 +00:00
"src" : "2786:14:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_enum$_Operation_$29" ,
2018-05-31 13:01:02 +00:00
"typeString" : "enum Enum.Operation"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-08-20 07:59:16 +00:00
"src" : "2746:65:10"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-08-20 07:59:16 +00:00
"id" : 1083 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1082 ,
2018-05-31 13:01:02 +00:00
"name" : "success" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1106 ,
"src" : "2844:12:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 1081 ,
2018-05-31 13:01:02 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "2844:4:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-08-20 07:59:16 +00:00
"src" : "2843:14:10"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"scope" : 1180 ,
"src" : "2712:429:10" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-08-20 07:59:16 +00:00
"id" : 1178 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-08-20 07:59:16 +00:00
"src" : "3302:656:10" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
2018-08-20 07:59:16 +00:00
"assignments" : [
1113
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1113 ,
"name" : "moduleCount" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1179 ,
"src" : "3346:19:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1112 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3346:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1115 ,
"initialValue" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"hexValue" : "30" ,
"id" : 1114 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-08-20 07:59:16 +00:00
"isPure" : true ,
"kind" : "number" ,
2018-05-31 13:01:02 +00:00
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Literal" ,
"src" : "3368:1:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "3346:23:10"
} ,
{
"assignments" : [
1117
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1117 ,
"name" : "currentModule" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1179 ,
"src" : "3379:21:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1116 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3379:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1121 ,
"initialValue" : {
"argumentTypes" : null ,
"baseExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1118 ,
"name" : "modules" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "3403:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1120 ,
"indexExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1119 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 934 ,
"src" : "3411:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3403:25:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "VariableDeclarationStatement" ,
"src" : "3379:49:10"
} ,
{
"body" : {
"id" : 1134 ,
"nodeType" : "Block" ,
"src" : "3479:91:10" ,
"statements" : [
{
2018-05-31 13:01:02 +00:00
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1129 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1125 ,
"name" : "currentModule" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1117 ,
"src" : "3493:13:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1126 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 938 ,
"src" : "3509:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1128 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1127 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1117 ,
"src" : "3517:13:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3509:22:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "3493:38:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1130 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3493:38:10"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
{
"expression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1132 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "3545:14:10" ,
"subExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1131 ,
"name" : "moduleCount" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1113 ,
"src" : "3545:11:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
} ,
"id" : 1133 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3545:14:10"
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1124 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1122 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1117 ,
"src" : "3444:13:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1123 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 934 ,
"src" : "3461:16:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "3444:33:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1135 ,
"nodeType" : "WhileStatement" ,
"src" : "3438:132:10"
} ,
{
"assignments" : [
1139
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1139 ,
"name" : "array" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1179 ,
"src" : "3579:22:10" ,
"stateVariable" : false ,
"storageLocation" : "memory" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
"id" : 1137 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3579:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1138 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "3579:9:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1145 ,
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1143 ,
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1113 ,
"src" : "3618:11:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 1142 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "NewExpression" ,
"src" : "3604:13:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$" ,
"typeString" : "function (uint256) pure returns (address[] memory)"
} ,
"typeName" : {
"baseType" : {
"id" : 1140 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3608:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1141 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "3608:9:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1144 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3604:26:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_memory" ,
"typeString" : "address[] memory"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "VariableDeclarationStatement" ,
"src" : "3579:51:10"
2018-05-31 13:01:02 +00:00
} ,
{
2018-08-20 07:59:16 +00:00
"expression" : {
"argumentTypes" : null ,
"id" : 1148 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1146 ,
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1113 ,
"src" : "3674:11:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1147 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3688:1:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3674:15:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1149 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3674:15:10"
2018-05-31 13:01:02 +00:00
} ,
{
2018-08-20 07:59:16 +00:00
"expression" : {
"argumentTypes" : null ,
"id" : 1154 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1150 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1117 ,
"src" : "3699:13:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1151 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 938 ,
"src" : "3715:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1153 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1152 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 934 ,
"src" : "3723:16:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3715:25:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "3699:41:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1155 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3699:41:10"
2018-05-31 13:01:02 +00:00
} ,
{
2018-08-20 07:59:16 +00:00
"body" : {
"id" : 1174 ,
"nodeType" : "Block" ,
"src" : "3791:139:10" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1163 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1159 ,
"name" : "array" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1139 ,
"src" : "3805:5:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1161 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1160 ,
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1113 ,
"src" : "3811:11:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "3805:18:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1162 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1117 ,
"src" : "3826:13:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "3805:34:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1164 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3805:34:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1169 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1165 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1117 ,
"src" : "3853:13:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1166 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 938 ,
"src" : "3869:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1168 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1167 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1117 ,
"src" : "3877:13:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3869:22:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "3853:38:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1170 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3853:38:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1172 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "3905:14:10" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1171 ,
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1113 ,
"src" : "3905:11:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1173 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3905:14:10"
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"id" : 1158 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1156 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1117 ,
"src" : "3756:13:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1157 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 934 ,
"src" : "3773:16:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "3756:33:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
} ,
"id" : 1175 ,
"nodeType" : "WhileStatement" ,
"src" : "3750:180:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1176 ,
"name" : "array" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1139 ,
"src" : "3946:5:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"functionReturnParameters" : 1111 ,
"id" : 1177 ,
"nodeType" : "Return" ,
"src" : "3939:12:10"
2018-05-31 13:01:02 +00:00
}
]
} ,
2018-08-20 07:59:16 +00:00
"documentation" : "@dev Returns array of modules.\n @return Array of modules." ,
"id" : 1179 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
2018-08-20 07:59:16 +00:00
"isDeclaredConst" : true ,
2018-05-31 13:01:02 +00:00
"modifiers" : [ ] ,
2018-08-20 07:59:16 +00:00
"name" : "getModules" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-08-20 07:59:16 +00:00
"id" : 1107 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "3239:2:10"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1111 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1110 ,
"name" : "" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1179 ,
"src" : "3287:9:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"baseType" : {
"id" : 1108 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3287:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1109 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "3287:9:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-08-20 07:59:16 +00:00
"src" : "3286:11:10"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"scope" : 1180 ,
"src" : "3220:738:10" ,
"stateMutability" : "view" ,
2018-05-31 13:01:02 +00:00
"superFunction" : null ,
2018-08-20 07:59:16 +00:00
"visibility" : "public"
}
] ,
"scope" : 1181 ,
"src" : "332:3628:10"
}
] ,
"src" : "0:3961:10"
} ,
"legacyAST" : {
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol" ,
"exportedSymbols" : {
"ModuleManager" : [
1180
]
} ,
"id" : 1181 ,
"nodeType" : "SourceUnit" ,
"nodes" : [
{
"id" : 915 ,
"literals" : [
"solidity" ,
"0.4" ,
".24"
] ,
"nodeType" : "PragmaDirective" ,
"src" : "0:23:10"
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol" ,
"file" : "./Enum.sol" ,
"id" : 916 ,
"nodeType" : "ImportDirective" ,
"scope" : 1181 ,
"sourceUnit" : 31 ,
"src" : "24:20:10" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Executor.sol" ,
"file" : "./Executor.sol" ,
"id" : 917 ,
"nodeType" : "ImportDirective" ,
"scope" : 1181 ,
"sourceUnit" : 154 ,
"src" : "45:24:10" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol" ,
"file" : "./Module.sol" ,
"id" : 918 ,
"nodeType" : "ImportDirective" ,
"scope" : 1181 ,
"sourceUnit" : 914 ,
"src" : "70:22:10" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol" ,
"file" : "./SelfAuthorized.sol" ,
"id" : 919 ,
"nodeType" : "ImportDirective" ,
"scope" : 1181 ,
"sourceUnit" : 1766 ,
"src" : "93:30:10" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
"id" : 920 ,
"name" : "SelfAuthorized" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1765 ,
"src" : "358:14:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SelfAuthorized_$1765" ,
"typeString" : "contract SelfAuthorized"
}
} ,
"id" : 921 ,
"nodeType" : "InheritanceSpecifier" ,
"src" : "358:14:10"
2018-05-31 13:01:02 +00:00
} ,
{
2018-08-20 07:59:16 +00:00
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
"id" : 922 ,
"name" : "Executor" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 153 ,
"src" : "374:8:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Executor_$153" ,
"typeString" : "contract Executor"
}
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"id" : 923 ,
"nodeType" : "InheritanceSpecifier" ,
"src" : "374:8:10"
}
] ,
"contractDependencies" : [
153 ,
37 ,
1765
] ,
"contractKind" : "contract" ,
"documentation" : "@title Module Manager - A contract that manages modules that can execute transactions via this contract\n @author Stefan George - <stefan@gnosis.pm>\n @author Richard Meissner - <richard@gnosis.pm>" ,
"fullyImplemented" : true ,
"id" : 1180 ,
"linearizedBaseContracts" : [
1180 ,
153 ,
37 ,
1765
] ,
"name" : "ModuleManager" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"constant" : true ,
"id" : 926 ,
"name" : "NAME" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1180 ,
"src" : "390:46:10" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"typeName" : {
"id" : 924 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "390:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"value" : {
"argumentTypes" : null ,
"hexValue" : "4d6f64756c65204d616e61676572" ,
"id" : 925 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "420:16:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_12aaa44a1bae367a1e1d9881f5d80283afded6373c2a1ca586db420944084efb" ,
"typeString" : "literal_string \"Module Manager\""
} ,
"value" : "Module Manager"
} ,
"visibility" : "public"
2018-05-31 13:01:02 +00:00
} ,
{
2018-08-20 07:59:16 +00:00
"constant" : true ,
"id" : 929 ,
"name" : "VERSION" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1180 ,
"src" : "442:40:10" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"typeName" : {
"id" : 927 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "442:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "302e302e31" ,
"id" : 928 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "475:7:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885" ,
"typeString" : "literal_string \"0.0.1\""
} ,
"value" : "0.0.1"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
"id" : 934 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1180 ,
"src" : "488:55:10" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 930 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "488:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : {
"argumentTypes" : null ,
"arguments" : [
2018-05-31 13:01:02 +00:00
{
2018-08-20 07:59:16 +00:00
"argumentTypes" : null ,
"hexValue" : "307831" ,
"id" : 932 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "539:3:10" ,
"subdenomination" : null ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"value" : "0x1"
2018-05-31 13:01:02 +00:00
}
] ,
2018-08-20 07:59:16 +00:00
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
}
] ,
"id" : 931 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "531:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 933 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "531:12:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"visibility" : "public"
2018-05-31 13:01:02 +00:00
} ,
{
2018-08-20 07:59:16 +00:00
"constant" : false ,
"id" : 938 ,
"name" : "modules" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1180 ,
"src" : "550:45:10" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
} ,
"typeName" : {
"id" : 937 ,
"keyType" : {
"id" : 935 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "559:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "550:28:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
} ,
"valueType" : {
"id" : 936 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "570:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 974 ,
"nodeType" : "Block" ,
"src" : "673:342:10" ,
"statements" : [
2018-05-31 13:01:02 +00:00
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 950 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 946 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "691:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 948 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 947 ,
"name" : "SENTINEL_MODULES" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 934 ,
"src" : "699:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "691:25:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-08-20 07:59:16 +00:00
"id" : 949 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "720:1:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-08-20 07:59:16 +00:00
"src" : "691:30:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"hexValue" : "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564" ,
"id" : 951 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "723:39:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77" ,
"typeString" : "literal_string \"Modules have already been initialized\""
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"value" : "Modules have already been initialized"
2018-05-31 13:01:02 +00:00
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77" ,
"typeString" : "literal_string \"Modules have already been initialized\""
2018-05-31 13:01:02 +00:00
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 945 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-08-20 07:59:16 +00:00
3831 ,
3832
2018-05-31 13:01:02 +00:00
] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 3832 ,
"src" : "683:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 952 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "683:80:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 953 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "683:80:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 958 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 954 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "773:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 956 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 955 ,
"name" : "SENTINEL_MODULES" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 934 ,
"src" : "781:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "773:25:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 957 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 934 ,
"src" : "801:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "773:44:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 959 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "773:44:10"
2018-05-31 13:01:02 +00:00
} ,
{
2018-08-20 07:59:16 +00:00
"condition" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 962 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"leftExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 960 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 940 ,
"src" : "831:2:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"hexValue" : "30" ,
"id" : 961 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "837:1:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "831:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 973 ,
"nodeType" : "IfStatement" ,
"src" : "827:181:10" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 965 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 940 ,
"src" : "952:2:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 966 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 942 ,
"src" : "956:4:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 967 ,
"name" : "gasleft" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 3821 ,
"src" : "962:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_gasleft_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
"id" : 968 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "962:9:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 964 ,
"name" : "executeDelegateCall" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 143 ,
"src" : "932:19:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$" ,
"typeString" : "function (address,bytes memory,uint256) returns (bool)"
}
} ,
"id" : 969 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "932:40:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e" ,
"id" : 970 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "974:33:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa" ,
"typeString" : "literal_string \"Could not finish initialization\""
} ,
"value" : "Could not finish initialization"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa" ,
"typeString" : "literal_string \"Could not finish initialization\""
}
] ,
"id" : 963 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
3831 ,
3832
] ,
"referencedDeclaration" : 3832 ,
"src" : "924:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 971 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "924:84:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 972 ,
"nodeType" : "ExpressionStatement" ,
"src" : "924:84:10"
}
2018-05-31 13:01:02 +00:00
}
]
} ,
2018-08-20 07:59:16 +00:00
"documentation" : null ,
"id" : 975 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
2018-08-20 07:59:16 +00:00
"modifiers" : [ ] ,
"name" : "setupModules" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-08-20 07:59:16 +00:00
"id" : 943 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 940 ,
"name" : "to" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 975 ,
"src" : "628:10:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 939 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "628:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 942 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 975 ,
"src" : "640:10:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
"id" : 941 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "640:5:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-08-20 07:59:16 +00:00
"src" : "627:24:10"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-08-20 07:59:16 +00:00
"id" : 944 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-08-20 07:59:16 +00:00
"src" : "673:0:10"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"scope" : 1180 ,
"src" : "606:409:10" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
2018-08-20 07:59:16 +00:00
"visibility" : "internal"
2018-05-31 13:01:02 +00:00
} ,
{
"body" : {
2018-08-20 07:59:16 +00:00
"id" : 1020 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-08-20 07:59:16 +00:00
"src" : "1257:384:10" ,
2018-05-31 13:01:02 +00:00
"statements" : [
2018-06-20 08:09:14 +00:00
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
2018-08-20 07:59:16 +00:00
"id" : 993 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 987 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 984 ,
2018-06-20 08:09:14 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 977 ,
"src" : "1337:6:10" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-06-20 08:09:14 +00:00
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
2018-06-20 08:09:14 +00:00
"typeString" : "contract Module"
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 983 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-08-20 07:59:16 +00:00
"src" : "1329:7:10" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 985 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "1329:15:10" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-08-20 07:59:16 +00:00
"id" : 986 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1348:1:10" ,
"subdenomination" : null ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"src" : "1329:20:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-31 13:01:02 +00:00
}
} ,
"nodeType" : "BinaryOperation" ,
2018-08-20 07:59:16 +00:00
"operator" : "&&" ,
2018-05-31 13:01:02 +00:00
"rightExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 992 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
2018-05-31 13:01:02 +00:00
{
2018-08-20 07:59:16 +00:00
"argumentTypes" : null ,
"id" : 989 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 977 ,
"src" : "1361:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
}
2018-05-31 13:01:02 +00:00
}
] ,
2018-08-20 07:59:16 +00:00
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
}
] ,
"id" : 988 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "1353:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 990 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-08-20 07:59:16 +00:00
"isPure" : false ,
"kind" : "typeConversion" ,
2018-05-31 13:01:02 +00:00
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1353:15:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 991 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 934 ,
"src" : "1372:16:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "1353:35:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "1329:59:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"hexValue" : "496e76616c6964206d6f64756c6520616464726573732070726f7669646564" ,
"id" : 994 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "1390:33:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
} ,
"value" : "Invalid module address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
] ,
"id" : 982 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
3831 ,
3832
] ,
"referencedDeclaration" : 3832 ,
"src" : "1321:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 995 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1321:103:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 996 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "1321:103:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 1002 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 998 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "1483:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1000 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 999 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 977 ,
"src" : "1491:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "1483:15:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
2018-08-20 07:59:16 +00:00
"operator" : "==" ,
2018-05-31 13:01:02 +00:00
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-08-20 07:59:16 +00:00
"id" : 1001 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "1502:1:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-08-20 07:59:16 +00:00
"src" : "1483:20:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"hexValue" : "4d6f64756c652068617320616c7265616479206265656e206164646564" ,
"id" : 1003 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "1505:31:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450" ,
"typeString" : "literal_string \"Module has already been added\""
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"value" : "Module has already been added"
2018-05-31 13:01:02 +00:00
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450" ,
"typeString" : "literal_string \"Module has already been added\""
2018-05-31 13:01:02 +00:00
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 997 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-08-20 07:59:16 +00:00
3831 ,
3832
2018-05-31 13:01:02 +00:00
] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 3832 ,
"src" : "1475:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1004 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "1475:62:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1005 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1475:62:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1012 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1006 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 938 ,
"src" : "1547:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1008 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1007 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 977 ,
"src" : "1555:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "1547:15:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1009 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 938 ,
"src" : "1565:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1011 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1010 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 934 ,
"src" : "1573:16:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1565:25:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "1547:43:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1013 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "1547:43:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1018 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1014 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 938 ,
"src" : "1600:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
} ,
"id" : 1016 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1015 ,
"name" : "SENTINEL_MODULES" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 934 ,
"src" : "1608:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
"isConstant" : false ,
2018-08-20 07:59:16 +00:00
"isLValue" : true ,
2018-05-31 13:01:02 +00:00
"isPure" : false ,
2018-08-20 07:59:16 +00:00
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "1600:25:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1017 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 977 ,
"src" : "1628:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "1600:34:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1019 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "1600:34:10"
2018-05-31 13:01:02 +00:00
}
]
} ,
2018-08-20 07:59:16 +00:00
"documentation" : "@dev Allows to add a module to the whitelist.\n This can only be done via a Safe transaction.\n @param module Module to be whitelisted." ,
"id" : 1021 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
2018-08-20 07:59:16 +00:00
"modifiers" : [
{
"arguments" : null ,
"id" : 980 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 979 ,
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1764 ,
"src" : "1242:10:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ModifierInvocation" ,
"src" : "1242:10:10"
}
] ,
"name" : "enableModule" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 978 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 977 ,
"name" : "module" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1021 ,
"src" : "1204:13:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"contractScope" : null ,
"id" : 976 ,
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 913 ,
"src" : "1204:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-08-20 07:59:16 +00:00
"src" : "1203:15:10"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 981 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1257:0:10"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"scope" : 1180 ,
"src" : "1182:459:10" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-08-20 07:59:16 +00:00
"id" : 1070 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-08-20 07:59:16 +00:00
"src" : "1997:379:10" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
2018-08-20 07:59:16 +00:00
"expression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"arguments" : [
{
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"id" : 1041 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"leftExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"id" : 1035 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"leftExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1032 ,
"name" : "module" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1025 ,
"src" : "2105:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 1031 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "2097:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"id" : 1033 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
2018-08-20 07:59:16 +00:00
"kind" : "typeConversion" ,
2018-05-31 13:01:02 +00:00
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "2097:15:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"hexValue" : "30" ,
"id" : 1034 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-08-20 07:59:16 +00:00
"isPure" : true ,
"kind" : "number" ,
2018-05-31 13:01:02 +00:00
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Literal" ,
"src" : "2116:1:10" ,
"subdenomination" : null ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"src" : "2097:20:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1040 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1037 ,
"name" : "module" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1025 ,
"src" : "2129:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 1036 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "2121:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"id" : 1038 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
2018-08-20 07:59:16 +00:00
"kind" : "typeConversion" ,
2018-05-31 13:01:02 +00:00
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "2121:15:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1039 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 934 ,
"src" : "2140:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "2121:35:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "2097:59:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c6964206d6f64756c6520616464726573732070726f7669646564" ,
"id" : 1042 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2158:33:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
} ,
"value" : "Invalid module address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
] ,
"id" : 1030 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
3831 ,
3832
] ,
"referencedDeclaration" : 3832 ,
"src" : "2089:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"id" : 1043 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2089:103:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1044 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2089:103:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1052 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"leftExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1046 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 938 ,
"src" : "2210:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1048 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1047 ,
"name" : "prevModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1023 ,
"src" : "2218:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2210:19:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1050 ,
"name" : "module" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1025 ,
"src" : "2241:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 1049 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "2233:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"id" : 1051 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
2018-08-20 07:59:16 +00:00
"kind" : "typeConversion" ,
2018-05-31 13:01:02 +00:00
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "2233:15:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "2210:38:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564" ,
"id" : 1053 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2250:42:10" ,
"subdenomination" : null ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e" ,
"typeString" : "literal_string \"Invalid prevModule, module pair provided\""
} ,
"value" : "Invalid prevModule, module pair provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-05-31 13:01:02 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-08-20 07:59:16 +00:00
} ,
{
"typeIdentifier" : "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e" ,
"typeString" : "literal_string \"Invalid prevModule, module pair provided\""
}
] ,
"id" : 1045 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
3831 ,
3832
] ,
"referencedDeclaration" : 3832 ,
"src" : "2202:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 1054 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2202:91:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1055 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2202:91:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1062 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1056 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 938 ,
"src" : "2303:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1058 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1057 ,
"name" : "prevModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1023 ,
"src" : "2311:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "2303:19:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1059 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 938 ,
"src" : "2325:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1061 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1060 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1025 ,
"src" : "2333:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2325:15:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "2303:37:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1063 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2303:37:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1068 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"baseExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1064 ,
"name" : "modules" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "2350:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1066 ,
"indexExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1065 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1025 ,
"src" : "2358:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "2350:15:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1067 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2368:1:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2350:19:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1069 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2350:19:10"
2018-05-31 13:01:02 +00:00
}
]
} ,
2018-08-20 07:59:16 +00:00
"documentation" : "@dev Allows to remove a module from the whitelist.\n This can only be done via a Safe transaction.\n @param prevModule Module that pointed to the module to be removed in the linked list\n @param module Module to be removed." ,
"id" : 1071 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
2018-08-20 07:59:16 +00:00
"modifiers" : [
{
"arguments" : null ,
"id" : 1028 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1027 ,
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1764 ,
"src" : "1982:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "1982:10:10"
}
] ,
"name" : "disableModule" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-08-20 07:59:16 +00:00
"id" : 1026 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1023 ,
"name" : "prevModule" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1071 ,
"src" : "1925:17:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
"contractScope" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1022 ,
"name" : "Module" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "UserDefinedTypeName" ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 913 ,
"src" : "1925:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1025 ,
"name" : "module" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1071 ,
"src" : "1944:13:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"contractScope" : null ,
"id" : 1024 ,
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 913 ,
"src" : "1944:6:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_contract$_Module_$913" ,
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-08-20 07:59:16 +00:00
"src" : "1924:34:10"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1029 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1997:0:10"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"scope" : 1180 ,
"src" : "1902:474:10" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
2018-08-20 07:59:16 +00:00
"visibility" : "public"
2018-05-31 13:01:02 +00:00
} ,
{
"body" : {
2018-08-20 07:59:16 +00:00
"id" : 1105 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-08-20 07:59:16 +00:00
"src" : "2862:279:10" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
2018-08-20 07:59:16 +00:00
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1090 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1085 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 938 ,
"src" : "2929:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1088 ,
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1086 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 3828 ,
"src" : "2937:3:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 1087 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2937:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2929:19:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1089 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2952:1:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2929:24:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65" ,
"id" : 1091 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2955:50:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4" ,
"typeString" : "literal_string \"Method can only be called from an enabled module\""
} ,
"value" : "Method can only be called from an enabled module"
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4" ,
"typeString" : "literal_string \"Method can only be called from an enabled module\""
}
] ,
"id" : 1084 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
3831 ,
3832
] ,
"referencedDeclaration" : 3832 ,
"src" : "2921:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1092 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2921:85:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1093 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2921:85:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1103 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1094 ,
"name" : "success" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1082 ,
"src" : "3078:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1096 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1073 ,
"src" : "3096:2:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 1097 ,
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1075 ,
"src" : "3100:5:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"id" : 1098 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1077 ,
"src" : "3107:4:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"id" : 1099 ,
"name" : "operation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1079 ,
"src" : "3113:9:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 1100 ,
"name" : "gasleft" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 3821 ,
"src" : "3124:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_gasleft_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
"id" : 1101 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3124:9:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
{
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 1095 ,
"name" : "execute" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 115 ,
"src" : "3088:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$" ,
"typeString" : "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)"
}
} ,
"id" : 1102 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3088:46:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "3078:56:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
} ,
"id" : 1104 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3078:56:10"
2018-05-31 13:01:02 +00:00
}
]
} ,
2018-08-20 07:59:16 +00:00
"documentation" : "@dev Allows a Module to execute a Safe transaction without any further confirmations.\n @param to Destination address of module transaction.\n @param value Ether value of module transaction.\n @param data Data payload of module transaction.\n @param operation Operation type of module transaction." ,
"id" : 1106 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
2018-08-20 07:59:16 +00:00
"name" : "execTransactionFromModule" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-08-20 07:59:16 +00:00
"id" : 1080 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1073 ,
2018-05-31 13:01:02 +00:00
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1106 ,
"src" : "2747:10:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 1072 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "2747:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1075 ,
2018-05-31 13:01:02 +00:00
"name" : "value" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1106 ,
"src" : "2759:13:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 1074 ,
2018-05-31 13:01:02 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "2759:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1077 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1106 ,
"src" : "2774:10:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 1076 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "2774:5:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1079 ,
"name" : "operation" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1106 ,
"src" : "2786:24:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"contractScope" : null ,
"id" : 1078 ,
"name" : "Enum.Operation" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 29 ,
"src" : "2786:14:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-08-20 07:59:16 +00:00
"src" : "2746:65:10"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-08-20 07:59:16 +00:00
"id" : 1083 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1082 ,
2018-05-31 13:01:02 +00:00
"name" : "success" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1106 ,
"src" : "2844:12:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 1081 ,
2018-05-31 13:01:02 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "2844:4:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-08-20 07:59:16 +00:00
"src" : "2843:14:10"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"scope" : 1180 ,
"src" : "2712:429:10" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
2018-08-20 07:59:16 +00:00
"visibility" : "public"
2018-05-31 13:01:02 +00:00
} ,
{
"body" : {
2018-08-20 07:59:16 +00:00
"id" : 1178 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-08-20 07:59:16 +00:00
"src" : "3302:656:10" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"assignments" : [
2018-08-20 07:59:16 +00:00
1113
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1113 ,
2018-05-31 13:01:02 +00:00
"name" : "moduleCount" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1179 ,
"src" : "3346:19:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 1112 ,
2018-05-31 13:01:02 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "3346:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 1115 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-08-20 07:59:16 +00:00
"id" : 1114 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "3368:1:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "3346:23:10"
2018-05-31 13:01:02 +00:00
} ,
{
"assignments" : [
2018-08-20 07:59:16 +00:00
1117
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1117 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1179 ,
"src" : "3379:21:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"id" : 1116 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "3379:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 1121 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1118 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "3403:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1120 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1119 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 934 ,
"src" : "3411:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "3403:25:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "3379:49:10"
2018-05-31 13:01:02 +00:00
} ,
{
"body" : {
2018-08-20 07:59:16 +00:00
"id" : 1134 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-08-20 07:59:16 +00:00
"src" : "3479:91:10" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1129 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1125 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1117 ,
"src" : "3493:13:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1126 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "3509:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1128 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1127 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1117 ,
"src" : "3517:13:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "3509:22:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "3493:38:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1130 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "3493:38:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1132 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-08-20 07:59:16 +00:00
"src" : "3545:14:10" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1131 ,
2018-05-31 13:01:02 +00:00
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1113 ,
"src" : "3545:11:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1133 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "3545:14:10"
2018-05-31 13:01:02 +00:00
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 1124 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1122 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1117 ,
"src" : "3444:13:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1123 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 934 ,
"src" : "3461:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "3444:33:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1135 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "WhileStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "3438:132:10"
2018-05-31 13:01:02 +00:00
} ,
{
"assignments" : [
2018-08-20 07:59:16 +00:00
1139
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1139 ,
2018-05-31 13:01:02 +00:00
"name" : "array" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1179 ,
"src" : "3579:22:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "memory" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
2018-08-20 07:59:16 +00:00
"id" : 1137 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "3579:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1138 ,
2018-05-31 13:01:02 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "3579:9:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 1145 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1143 ,
2018-05-31 13:01:02 +00:00
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1113 ,
"src" : "3618:11:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2018-08-20 07:59:16 +00:00
"id" : 1142 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "NewExpression" ,
2018-08-20 07:59:16 +00:00
"src" : "3604:13:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$" ,
"typeString" : "function (uint256) pure returns (address[] memory)"
} ,
"typeName" : {
"baseType" : {
2018-08-20 07:59:16 +00:00
"id" : 1140 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "3608:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1141 ,
2018-05-31 13:01:02 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "3608:9:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1144 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-08-20 07:59:16 +00:00
"src" : "3604:26:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory" ,
"typeString" : "address[] memory"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "3579:51:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1148 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1146 ,
2018-05-31 13:01:02 +00:00
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1113 ,
"src" : "3674:11:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-08-20 07:59:16 +00:00
"id" : 1147 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-08-20 07:59:16 +00:00
"src" : "3688:1:10" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-08-20 07:59:16 +00:00
"src" : "3674:15:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1149 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "3674:15:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1154 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1150 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1117 ,
"src" : "3699:13:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1151 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "3715:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1153 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1152 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 934 ,
"src" : "3723:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "3715:25:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "3699:41:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1155 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "3699:41:10"
2018-05-31 13:01:02 +00:00
} ,
{
"body" : {
2018-08-20 07:59:16 +00:00
"id" : 1174 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-08-20 07:59:16 +00:00
"src" : "3791:139:10" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1163 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1159 ,
2018-05-31 13:01:02 +00:00
"name" : "array" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1139 ,
"src" : "3805:5:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1161 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1160 ,
2018-05-31 13:01:02 +00:00
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1113 ,
"src" : "3811:11:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "3805:18:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1162 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1117 ,
"src" : "3826:13:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "3805:34:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1164 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "3805:34:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1169 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1165 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1117 ,
"src" : "3853:13:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1166 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 938 ,
"src" : "3869:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1168 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1167 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1117 ,
"src" : "3877:13:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-08-20 07:59:16 +00:00
"src" : "3869:22:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "3853:38:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1170 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "3853:38:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1172 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-08-20 07:59:16 +00:00
"src" : "3905:14:10" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1171 ,
2018-05-31 13:01:02 +00:00
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1113 ,
"src" : "3905:11:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1173 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "3905:14:10"
2018-05-31 13:01:02 +00:00
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-08-20 07:59:16 +00:00
"id" : 1158 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1156 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1117 ,
"src" : "3756:13:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1157 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 934 ,
"src" : "3773:16:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"src" : "3756:33:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1175 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "WhileStatement" ,
2018-08-20 07:59:16 +00:00
"src" : "3750:180:10"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"id" : 1176 ,
2018-05-31 13:01:02 +00:00
"name" : "array" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-08-20 07:59:16 +00:00
"referencedDeclaration" : 1139 ,
"src" : "3946:5:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-08-20 07:59:16 +00:00
"functionReturnParameters" : 1111 ,
"id" : 1177 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Return" ,
2018-08-20 07:59:16 +00:00
"src" : "3939:12:10"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Returns array of modules.\n @return Array of modules." ,
2018-08-20 07:59:16 +00:00
"id" : 1179 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "getModules" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-08-20 07:59:16 +00:00
"id" : 1107 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-08-20 07:59:16 +00:00
"src" : "3239:2:10"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-08-20 07:59:16 +00:00
"id" : 1111 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-08-20 07:59:16 +00:00
"id" : 1110 ,
2018-05-31 13:01:02 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2018-08-20 07:59:16 +00:00
"scope" : 1179 ,
"src" : "3287:9:10" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
2018-08-20 07:59:16 +00:00
"id" : 1108 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "3287:7:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"id" : 1109 ,
2018-05-31 13:01:02 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-08-20 07:59:16 +00:00
"src" : "3287:9:10" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-08-20 07:59:16 +00:00
"src" : "3286:11:10"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"scope" : 1180 ,
"src" : "3220:738:10" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
}
] ,
2018-08-20 07:59:16 +00:00
"scope" : 1181 ,
"src" : "332:3628:10"
2018-05-31 13:01:02 +00:00
}
] ,
2018-08-20 07:59:16 +00:00
"src" : "0:3961:10"
2018-05-31 13:01:02 +00:00
} ,
"compiler" : {
"name" : "solc" ,
"version" : "0.4.24+commit.e67f0147.Emscripten.clang"
} ,
"networks" : { } ,
2018-06-29 11:23:01 +00:00
"schemaVersion" : "2.0.0" ,
2018-08-20 07:59:16 +00:00
"updatedAt" : "2018-08-20T07:44:41.088Z"
2018-05-31 13:01:02 +00:00
}