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"
}
] ,
"bytecode" : " 0 x 608060405234801561001057600080 f d 5 b 5061109 d 806100206000396000 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 e f 9565 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 32565 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 e f 9565 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 32565 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" : "303:5100:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;303:5100:8;;;;;;;" ,
"deployedSourceMap" : "303:5100:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:429:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:459:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:8;;;;;;;;;;;;;;;;;;;;;;;;;;;401:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;401:46:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;401:46:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4663:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4663:738:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4663:738:8;;;;;;;;;;;;;;;;;2031:343;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2031:343:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;453:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;453:40:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;453:40:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:429;2842:12;2950:1;2927:7;:19;2935:10;2927:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2919:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3086:46;3094:2;3098:5;3105:4;3111:9;3122;3086:7;:46::i;:::-;3076:56;;2710:429;;;;;;:::o;1311:459::-;244:4:13;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:1:8;1466:6;1458:20;;;;:59;;;;;550:3;1482:35;;1490:6;1482:35;;;;1458:59;1450:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:1;1612:7;:15;1620:6;1612:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1604:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:7;:25;550:3;1694:25;;;;;;;;;;;;;;;;;;;;;;;;;1676:7;:15;1684:6;1676:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1757:6;1729:7;:25;550:3;1729:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1311:459;:::o;499:55::-;550:3;499:55;:::o;401:46::-;;;;;;;;;;;;;;;;;;;;:::o;4663:738::-;4730:9;4789:19;4822:21;5022:22;4811:1;4789:23;;4846:7;:25;550:3;4846:25;;;;;;;;;;;;;;;;;;;;;;;;;4822:49;;4881:132;550:3;4887:33;;:13;:33;;;;4881:132;;;4952:7;:22;4960:13;4952:22;;;;;;;;;;;;;;;;;;;;;;;;;4936:38;;4988:14;;;;;;;4881:132;;;5061:11;5047: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;5047:26:8;;;;5022:51;;5131:1;5117:15;;5158:7;:25;550:3;5158:25;;;;;;;;;;;;;;;;;;;;;;;;;5142:41;;5193:180;550:3;5199:33;;:13;:33;;;;5193:180;;;5269:13;5248:5;5254:11;5248:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5312:7;:22;5320:13;5312:22;;;;;;;;;;;;;;;;;;;;;;;;;5296:38;;5348:14;;;;;;;5193:180;;;5389:5;5382:12;;4663:738;;;;:::o;2031:343::-;244:4:13;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:6:8;2208:38;;:7;:19;2216:10;2208:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2200:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2323:7;:15;2331:6;2323:15;;;;;;;;;;;;;;;;;;;;;;;;;2301:7;:19;2309:10;2301:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2366:1;2348:7;:15;2356:6;2348:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2031:343;;:::o;453:40::-;;;;;;;;;;;;;;;;;;;;:::o;3145:548::-;3276:12;3547:19;3321;3308:32;;;;;;;;:9;:32;;;;;;;;;3304:383;;;3364:35;3376:2;3380:5;3387:4;3393:5;3364:11;:35::i;:::-;3354:45;;3304:383;;;3431:27;3418:40;;;;;;;;:9;:40;;;;;;;;;3414:273;;;3482:36;3502:2;3506:4;3512:5;3482:19;:36::i;:::-;3472:46;;3414:273;;;3569:19;3583:4;3569:13;:19::i;:::-;3547:41;;3627:1;3612:11;:16;;;;3602:26;;3647:29;3664:11;3647:29;;;;;;;;;;;;;;;;;;;;;;3414:273;3304:383;3145:548;;;;;;;;:::o;3699:309::-;3808:12;3990:1;3987;3980:4;3974:11;3967:4;3961;3957:15;3950:5;3946:2;3939:5;3934:58;3923:69;;3909:93;;;;;;:::o;4014:303::-;4116:12;4299:1;4296;4289:4;4283:11;4276:4;4270;4266:15;4262:2;4255:5;4242:59;4231:70;;4217:94;;;;;:::o;4323:261::-;4392:19;4562:4;4556:11;4549:4;4543;4539:15;4536:1;4529:39;4514:54;;4500:78;;;:::o" ,
"source" : "pragma solidity 0.4.24;\nimport \"./Module.sol\";\nimport \"./MasterCopy.sol\";\nimport \"./Enum.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 {\n\n event ContractCreation(address newContract);\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 /// @dev Fallback function accepts Ether transactions.\n function ()\n external\n payable\n {\n\n }\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 corresponds to module index.\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 function execute(address to, uint256 value, bytes data, Enum.Operation operation, uint256 txGas)\n internal\n returns (bool success)\n {\n if (operation == Enum.Operation.Call)\n success = executeCall(to, value, data, txGas);\n else if (operation == Enum.Operation.DelegateCall)\n success = executeDelegateCall(to, data, txGas);\n else {\n address newContract = executeCreate(data);\n success = newContract != 0;\n emit ContractCreation(newContract);\n }\n }\n\n function executeCall(address to, uint256 value, bytes data, uint256 txGas)\n internal\n returns (bool success)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := call(txGas, to, value, a
"sourcePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol" ,
"ast" : {
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol" ,
"exportedSymbols" : {
"ModuleManager" : [
1118
]
} ,
"id" : 1119 ,
"nodeType" : "SourceUnit" ,
"nodes" : [
{
"id" : 764 ,
"literals" : [
"solidity" ,
"0.4" ,
".24"
] ,
"nodeType" : "PragmaDirective" ,
"src" : "0:23:8"
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol" ,
"file" : "./Module.sol" ,
"id" : 765 ,
"nodeType" : "ImportDirective" ,
"scope" : 1119 ,
"sourceUnit" : 763 ,
"src" : "24:22:8" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol" ,
"file" : "./MasterCopy.sol" ,
"id" : 766 ,
"nodeType" : "ImportDirective" ,
"scope" : 1119 ,
"sourceUnit" : 663 ,
"src" : "47:26:8" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol" ,
"file" : "./Enum.sol" ,
"id" : 767 ,
"nodeType" : "ImportDirective" ,
"scope" : 1119 ,
"sourceUnit" : 31 ,
"src" : "74:20:8" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
"id" : 768 ,
"name" : "SelfAuthorized" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1654 ,
"src" : "329:14:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SelfAuthorized_$1654" ,
"typeString" : "contract SelfAuthorized"
}
} ,
"id" : 769 ,
"nodeType" : "InheritanceSpecifier" ,
"src" : "329:14:8"
}
] ,
"contractDependencies" : [
1654
] ,
"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" : 1118 ,
"linearizedBaseContracts" : [
1118 ,
1654
] ,
"name" : "ModuleManager" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"anonymous" : false ,
"documentation" : null ,
"id" : 773 ,
"name" : "ContractCreation" ,
"nodeType" : "EventDefinition" ,
"parameters" : {
"id" : 772 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 771 ,
"indexed" : false ,
"name" : "newContract" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 773 ,
"src" : "374:19:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 770 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "374:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "373:21:8"
} ,
"src" : "351:44:8"
} ,
{
"constant" : true ,
"id" : 776 ,
"name" : "NAME" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1118 ,
"src" : "401:46:8" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
} ,
"typeName" : {
"id" : 774 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "401:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "4d6f64756c65204d616e61676572" ,
"id" : 775 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "431:16:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_12aaa44a1bae367a1e1d9881f5d80283afded6373c2a1ca586db420944084efb" ,
"typeString" : "literal_string \"Module Manager\""
} ,
"value" : "Module Manager"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
"id" : 779 ,
"name" : "VERSION" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1118 ,
"src" : "453:40:8" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
} ,
"typeName" : {
"id" : 777 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "453:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "302e302e31" ,
"id" : 778 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "486:7:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885" ,
"typeString" : "literal_string \"0.0.1\""
} ,
"value" : "0.0.1"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
"id" : 784 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1118 ,
"src" : "499:55:8" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 780 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "499:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "307831" ,
"id" : 782 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "550:3:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
} ,
"value" : "0x1"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
}
] ,
"id" : 781 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "542:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 783 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "542:12:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 788 ,
"name" : "modules" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1118 ,
"src" : "561:45:8" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
} ,
"typeName" : {
"id" : 787 ,
"keyType" : {
"id" : 785 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "570:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "561:28:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
} ,
"valueType" : {
"id" : 786 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "581:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 791 ,
"nodeType" : "Block" ,
"src" : "721:8:8" ,
"statements" : [ ]
} ,
"documentation" : "@dev Fallback function accepts Ether transactions." ,
"id" : 792 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 789 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "681:2:8"
} ,
"payable" : true ,
"returnParameters" : {
"id" : 790 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "721:0:8"
} ,
"scope" : 1118 ,
"src" : "672:57:8" ,
"stateMutability" : "payable" ,
"superFunction" : null ,
"visibility" : "external"
} ,
{
"body" : {
"id" : 828 ,
"nodeType" : "Block" ,
"src" : "802:342:8" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 804 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 800 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "820:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 802 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 801 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "828:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "820:25:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 803 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "849:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "820:30:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564" ,
"id" : 805 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "852:39:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77" ,
"typeString" : "literal_string \"Modules have already been initialized\""
} ,
"value" : "Modules have already been initialized"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77" ,
"typeString" : "literal_string \"Modules have already been initialized\""
}
] ,
"id" : 799 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "812:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 806 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "812:80:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 807 ,
"nodeType" : "ExpressionStatement" ,
"src" : "812:80:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 812 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 808 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "902:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 810 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 809 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "910:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "902:25:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 811 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "930:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "902:44:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 813 ,
"nodeType" : "ExpressionStatement" ,
"src" : "902:44:8"
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 816 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 814 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 794 ,
"src" : "960:2:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 815 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "966:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "960:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 827 ,
"nodeType" : "IfStatement" ,
"src" : "956:181:8" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 819 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 794 ,
"src" : "1081:2:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 820 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 796 ,
"src" : "1085:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 821 ,
"name" : "gasleft" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2647 ,
"src" : "1091:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_gasleft_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
"id" : 822 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1091:9:8" ,
"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" : 818 ,
"name" : "executeDelegateCall" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1035 ,
"src" : "1061:19:8" ,
"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" : 823 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1061:40:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e" ,
"id" : 824 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1103:33:8" ,
"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" : 817 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "1053:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 825 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1053:84:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 826 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1053:84:8"
}
}
]
} ,
"documentation" : null ,
"id" : 829 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "setupModules" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 797 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 794 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 829 ,
"src" : "757:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 793 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "757:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 796 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 829 ,
"src" : "769:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
"id" : 795 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "769:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "756:24:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 798 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "802:0:8"
} ,
"scope" : 1118 ,
"src" : "735:409:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 874 ,
"nodeType" : "Block" ,
"src" : "1386:384:8" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"id" : 847 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 841 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 838 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 831 ,
"src" : "1466:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
] ,
"id" : 837 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "1458:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 839 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1458:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 840 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1477:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "1458:20:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 846 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 843 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 831 ,
"src" : "1490:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
] ,
"id" : 842 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "1482:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 844 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1482:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 845 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "1501:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "1482:35:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "1458:59:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c6964206d6f64756c6520616464726573732070726f7669646564" ,
"id" : 848 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1519:33:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
} ,
"value" : "Invalid module address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
}
] ,
"id" : 836 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "1450:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 849 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1450:103:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 850 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1450:103:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 856 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 852 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "1612:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 854 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 853 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 831 ,
"src" : "1620:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1612:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 855 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1631:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "1612:20:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6f64756c652068617320616c7265616479206265656e206164646564" ,
"id" : 857 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1634:31:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450" ,
"typeString" : "literal_string \"Module has already been added\""
} ,
"value" : "Module has already been added"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450" ,
"typeString" : "literal_string \"Module has already been added\""
}
] ,
"id" : 851 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "1604:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 858 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1604:62:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 859 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1604:62:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 866 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 860 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "1676:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 862 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 861 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 831 ,
"src" : "1684:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "1676:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 863 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "1694:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 865 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 864 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "1702:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1694:25:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "1676:43:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 867 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1676:43:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 872 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 868 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "1729:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 870 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 869 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "1737:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "1729:25:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 871 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 831 ,
"src" : "1757:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"src" : "1729:34:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 873 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1729:34:8"
}
]
} ,
"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" : 875 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
"id" : 834 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 833 ,
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1653 ,
"src" : "1371:10:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "1371:10:8"
}
] ,
"name" : "enableModule" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 832 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 831 ,
"name" : "module" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 875 ,
"src" : "1333:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 830 ,
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 762 ,
"src" : "1333:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1332:15:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 835 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1386:0:8"
} ,
"scope" : 1118 ,
"src" : "1311:459:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 909 ,
"nodeType" : "Block" ,
"src" : "2126:248:8" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 891 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 885 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "2208:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 887 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 886 ,
"name" : "prevModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 877 ,
"src" : "2216:10:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2208:19:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 889 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 879 ,
"src" : "2239:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
] ,
"id" : 888 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "2231:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 890 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2231:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "2208:38:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564" ,
"id" : 892 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2248:42:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e" ,
"typeString" : "literal_string \"Invalid prevModule, module pair provided\""
} ,
"value" : "Invalid prevModule, module pair provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e" ,
"typeString" : "literal_string \"Invalid prevModule, module pair provided\""
}
] ,
"id" : 884 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2200:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 893 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2200:91:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 894 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2200:91:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 901 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 895 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "2301:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 897 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 896 ,
"name" : "prevModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 877 ,
"src" : "2309:10:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "2301:19:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 898 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "2323:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 900 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 899 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 879 ,
"src" : "2331:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2323:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "2301:37:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 902 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2301:37:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 907 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 903 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "2348:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 905 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 904 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 879 ,
"src" : "2356:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "2348:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 906 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2366:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2348:19:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 908 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2348:19:8"
}
]
} ,
"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" : 910 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
"id" : 882 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 881 ,
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1653 ,
"src" : "2111:10:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "2111:10:8"
}
] ,
"name" : "disableModule" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 880 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 877 ,
"name" : "prevModule" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 910 ,
"src" : "2054:17:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 876 ,
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 762 ,
"src" : "2054:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 879 ,
"name" : "module" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 910 ,
"src" : "2073:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 878 ,
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 762 ,
"src" : "2073:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2053:34:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 883 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "2126:0:8"
} ,
"scope" : 1118 ,
"src" : "2031:343:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 944 ,
"nodeType" : "Block" ,
"src" : "2860:279:8" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 929 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 924 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "2927:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 927 ,
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 925 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2654 ,
"src" : "2935:3:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 926 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2935:10:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2927:19:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 928 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2950:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2927:24:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65" ,
"id" : 930 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2953:50:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4" ,
"typeString" : "literal_string \"Method can only be called from an enabled module\""
} ,
"value" : "Method can only be called from an enabled module"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4" ,
"typeString" : "literal_string \"Method can only be called from an enabled module\""
}
] ,
"id" : 923 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2919:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 931 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2919:85:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 932 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2919:85:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 942 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 933 ,
"name" : "success" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 921 ,
"src" : "3076:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 935 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 912 ,
"src" : "3094:2:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 936 ,
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 914 ,
"src" : "3098:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"id" : 937 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 916 ,
"src" : "3105:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"id" : 938 ,
"name" : "operation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 918 ,
"src" : "3111:9:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 939 ,
"name" : "gasleft" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2647 ,
"src" : "3122:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_gasleft_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
"id" : 940 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3122:9:8" ,
"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" : 934 ,
"name" : "execute" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1007 ,
"src" : "3086:7:8" ,
"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" : 941 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3086:46:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3076:56:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 943 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3076:56:8"
}
]
} ,
"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" : 945 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "execTransactionFromModule" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 919 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 912 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 945 ,
"src" : "2745:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 911 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2745:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 914 ,
"name" : "value" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 945 ,
"src" : "2757:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 913 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2757:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 916 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 945 ,
"src" : "2772:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
"id" : 915 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2772:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 918 ,
"name" : "operation" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 945 ,
"src" : "2784:24:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 917 ,
"name" : "Enum.Operation" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 29 ,
"src" : "2784:14:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2744:65:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 922 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 921 ,
"name" : "success" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 945 ,
"src" : "2842:12:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 920 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2842:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2841:14:8"
} ,
"scope" : 1118 ,
"src" : "2710:429:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1006 ,
"nodeType" : "Block" ,
"src" : "3294:399:8" ,
"statements" : [
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
} ,
"id" : 964 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 960 ,
"name" : "operation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 953 ,
"src" : "3308:9:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 961 ,
"name" : "Enum" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 30 ,
"src" : "3321:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_Enum_$30_$" ,
"typeString" : "type(contract Enum)"
}
} ,
"id" : 962 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 29 ,
"src" : "3321:14:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$29_$" ,
"typeString" : "type(enum Enum.Operation)"
}
} ,
"id" : 963 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "Call" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "3321:19:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
} ,
"src" : "3308:32:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : {
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
} ,
"id" : 978 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 974 ,
"name" : "operation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 953 ,
"src" : "3418:9:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 975 ,
"name" : "Enum" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 30 ,
"src" : "3431:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_Enum_$30_$" ,
"typeString" : "type(contract Enum)"
}
} ,
"id" : 976 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 29 ,
"src" : "3431:14:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$29_$" ,
"typeString" : "type(enum Enum.Operation)"
}
} ,
"id" : 977 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "DelegateCall" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "3431:27:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
} ,
"src" : "3418:40:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : {
"id" : 1003 ,
"nodeType" : "Block" ,
"src" : "3533:154:8" ,
"statements" : [
{
"assignments" : [
988
] ,
"declarations" : [
{
"constant" : false ,
"id" : 988 ,
"name" : "newContract" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1007 ,
"src" : "3547:19:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 987 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3547:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 992 ,
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 990 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 951 ,
"src" : "3583:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
] ,
"id" : 989 ,
"name" : "executeCreate" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1044 ,
"src" : "3569:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$" ,
"typeString" : "function (bytes memory) returns (address)"
}
} ,
"id" : 991 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3569:19:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "3547:41:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 997 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 993 ,
"name" : "success" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 958 ,
"src" : "3602:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 996 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 994 ,
"name" : "newContract" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 988 ,
"src" : "3612:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 995 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3627:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3612:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3602:26:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 998 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3602:26:8"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1000 ,
"name" : "newContract" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 988 ,
"src" : "3664:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
] ,
"id" : 999 ,
"name" : "ContractCreation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 773 ,
"src" : "3647:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_address_$returns$__$" ,
"typeString" : "function (address)"
}
} ,
"id" : 1001 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3647:29:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1002 ,
"nodeType" : "EmitStatement" ,
"src" : "3642:34:8"
}
]
} ,
"id" : 1004 ,
"nodeType" : "IfStatement" ,
"src" : "3414:273:8" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"id" : 985 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 979 ,
"name" : "success" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 958 ,
"src" : "3472:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 981 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 947 ,
"src" : "3502:2:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 982 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 951 ,
"src" : "3506:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"id" : 983 ,
"name" : "txGas" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 955 ,
"src" : "3512:5:8" ,
"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" : 980 ,
"name" : "executeDelegateCall" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1035 ,
"src" : "3482:19:8" ,
"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" : 984 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3482:36:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3472:46:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 986 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3472:46:8"
}
} ,
"id" : 1005 ,
"nodeType" : "IfStatement" ,
"src" : "3304:383:8" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"id" : 972 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 965 ,
"name" : "success" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 958 ,
"src" : "3354:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 967 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 947 ,
"src" : "3376:2:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 968 ,
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 949 ,
"src" : "3380:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"id" : 969 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 951 ,
"src" : "3387:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"id" : 970 ,
"name" : "txGas" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 955 ,
"src" : "3393:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 966 ,
"name" : "executeCall" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1022 ,
"src" : "3364:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$" ,
"typeString" : "function (address,uint256,bytes memory,uint256) returns (bool)"
}
} ,
"id" : 971 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3364:35:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3354:45:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 973 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3354:45:8"
}
}
]
} ,
"documentation" : null ,
"id" : 1007 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "execute" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 956 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 947 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1007 ,
"src" : "3162:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 946 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3162:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 949 ,
"name" : "value" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1007 ,
"src" : "3174:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 948 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3174:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 951 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1007 ,
"src" : "3189:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
"id" : 950 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3189:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 953 ,
"name" : "operation" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1007 ,
"src" : "3201:24:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 952 ,
"name" : "Enum.Operation" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 29 ,
"src" : "3201:14:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 955 ,
"name" : "txGas" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1007 ,
"src" : "3227:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 954 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3227:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3161:80:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 959 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 958 ,
"name" : "success" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1007 ,
"src" : "3276:12:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 957 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3276:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3275:14:8"
} ,
"scope" : 1118 ,
"src" : "3145:548:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1021 ,
"nodeType" : "Block" ,
"src" : "3826:182:8" ,
"statements" : [
{
"externalReferences" : [
{
"data" : {
"declaration" : 1013 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3980:4:8" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1013 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3961:4:8" ,
"valueSize" : 1
}
} ,
{
"success" : {
"declaration" : 1018 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3923:7:8" ,
"valueSize" : 1
}
} ,
{
"txGas" : {
"declaration" : 1015 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3939:5:8" ,
"valueSize" : 1
}
} ,
{
"to" : {
"declaration" : 1009 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3946:2:8" ,
"valueSize" : 1
}
} ,
{
"value" : {
"declaration" : 1011 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3950:5:8" ,
"valueSize" : 1
}
}
] ,
"id" : 1020 ,
"nodeType" : "InlineAssembly" ,
"operations" : "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}" ,
"src" : "3900:108:8"
}
]
} ,
"documentation" : null ,
"id" : 1022 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "executeCall" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1016 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1009 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1022 ,
"src" : "3720:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1008 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3720:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1011 ,
"name" : "value" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1022 ,
"src" : "3732:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1010 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3732:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1013 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1022 ,
"src" : "3747:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
"id" : 1012 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3747:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1015 ,
"name" : "txGas" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1022 ,
"src" : "3759:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1014 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3759:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3719:54:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1019 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1018 ,
"name" : "success" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1022 ,
"src" : "3808:12:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 1017 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3808:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3807:14:8"
} ,
"scope" : 1118 ,
"src" : "3699:309:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1034 ,
"nodeType" : "Block" ,
"src" : "4134:183:8" ,
"statements" : [
{
"externalReferences" : [
{
"data" : {
"declaration" : 1026 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4289:4:8" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1026 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4270:4:8" ,
"valueSize" : 1
}
} ,
{
"success" : {
"declaration" : 1031 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4231:7:8" ,
"valueSize" : 1
}
} ,
{
"txGas" : {
"declaration" : 1028 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4255:5:8" ,
"valueSize" : 1
}
} ,
{
"to" : {
"declaration" : 1024 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4262:2:8" ,
"valueSize" : 1
}
}
] ,
"id" : 1033 ,
"nodeType" : "InlineAssembly" ,
"operations" : "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}" ,
"src" : "4208:109:8"
}
]
} ,
"documentation" : null ,
"id" : 1035 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "executeDelegateCall" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1029 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1024 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1035 ,
"src" : "4043:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1023 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4043:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1026 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1035 ,
"src" : "4055:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
"id" : 1025 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4055:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1028 ,
"name" : "txGas" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1035 ,
"src" : "4067:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1027 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4067:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4042:39:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1032 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1031 ,
"name" : "success" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1035 ,
"src" : "4116:12:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 1030 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4116:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4115:14:8"
} ,
"scope" : 1118 ,
"src" : "4014:303:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1043 ,
"nodeType" : "Block" ,
"src" : "4417:167:8" ,
"statements" : [
{
"externalReferences" : [
{
"newContract" : {
"declaration" : 1040 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4514:11:8" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1037 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4543:4:8" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1037 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4562:4:8" ,
"valueSize" : 1
}
}
] ,
"id" : 1042 ,
"nodeType" : "InlineAssembly" ,
"operations" : "{\n newContract := create(0, add(data, 0x20), mload(data))\n}" ,
"src" : "4491:93:8"
}
]
} ,
"documentation" : null ,
"id" : 1044 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "executeCreate" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1038 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1037 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1044 ,
"src" : "4346:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
"id" : 1036 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4346:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4345:12:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1041 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1040 ,
"name" : "newContract" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1044 ,
"src" : "4392:19:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1039 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4392:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4391:21:8"
} ,
"scope" : 1118 ,
"src" : "4323:261:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1116 ,
"nodeType" : "Block" ,
"src" : "4745:656:8" ,
"statements" : [
{
"assignments" : [
1051
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1051 ,
"name" : "moduleCount" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1117 ,
"src" : "4789:19:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1050 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4789:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1053 ,
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1052 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4811:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "4789:23:8"
} ,
{
"assignments" : [
1055
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1055 ,
"name" : "currentModule" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1117 ,
"src" : "4822:21:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1054 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4822:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1059 ,
"initialValue" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1056 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "4846:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1058 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1057 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "4854:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4846:25:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "4822:49:8"
} ,
{
"body" : {
"id" : 1072 ,
"nodeType" : "Block" ,
"src" : "4922:91:8" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1067 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1063 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "4936:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1064 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "4952:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1066 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1065 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "4960:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4952:22:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "4936:38:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1068 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4936:38:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1070 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "4988:14:8" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1069 ,
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1051 ,
"src" : "4988:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1071 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4988:14:8"
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1062 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1060 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "4887:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1061 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "4904:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "4887:33:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1073 ,
"nodeType" : "WhileStatement" ,
"src" : "4881:132:8"
} ,
{
"assignments" : [
1077
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1077 ,
"name" : "array" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1117 ,
"src" : "5022:22:8" ,
"stateVariable" : false ,
"storageLocation" : "memory" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
"id" : 1075 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5022:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1076 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "5022:9:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1083 ,
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1081 ,
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1051 ,
"src" : "5061:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 1080 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "NewExpression" ,
"src" : "5047:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$" ,
"typeString" : "function (uint256) pure returns (address[] memory)"
} ,
"typeName" : {
"baseType" : {
"id" : 1078 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5051:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1079 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "5051:9:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
}
} ,
"id" : 1082 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5047:26:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory" ,
"typeString" : "address[] memory"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "5022:51:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1086 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1084 ,
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1051 ,
"src" : "5117:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1085 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5131:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "5117:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1087 ,
"nodeType" : "ExpressionStatement" ,
"src" : "5117:15:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1092 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1088 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "5142:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1089 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "5158:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1091 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1090 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "5166:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "5158:25:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "5142:41:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1093 ,
"nodeType" : "ExpressionStatement" ,
"src" : "5142:41:8"
} ,
{
"body" : {
"id" : 1112 ,
"nodeType" : "Block" ,
"src" : "5234:139:8" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1101 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1097 ,
"name" : "array" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1077 ,
"src" : "5248:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1099 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1098 ,
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1051 ,
"src" : "5254:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "5248:18:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1100 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "5269:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "5248:34:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1102 ,
"nodeType" : "ExpressionStatement" ,
"src" : "5248:34:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1107 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1103 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "5296:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1104 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "5312:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1106 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1105 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "5320:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "5312:22:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "5296:38:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1108 ,
"nodeType" : "ExpressionStatement" ,
"src" : "5296:38:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1110 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "5348:14:8" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1109 ,
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1051 ,
"src" : "5348:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1111 ,
"nodeType" : "ExpressionStatement" ,
"src" : "5348:14:8"
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1096 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1094 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "5199:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1095 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "5216:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "5199:33:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1113 ,
"nodeType" : "WhileStatement" ,
"src" : "5193:180:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1114 ,
"name" : "array" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1077 ,
"src" : "5389:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"functionReturnParameters" : 1049 ,
"id" : 1115 ,
"nodeType" : "Return" ,
"src" : "5382:12:8"
}
]
} ,
"documentation" : "@dev Returns array of modules.\n @return Array of modules." ,
"id" : 1117 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "getModules" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1045 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "4682:2:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1049 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1048 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1117 ,
"src" : "4730:9:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
"id" : 1046 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4730:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1047 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "4730:9:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4729:11:8"
} ,
"scope" : 1118 ,
"src" : "4663:738:8" ,
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
}
] ,
"scope" : 1119 ,
"src" : "303:5100:8"
}
] ,
"src" : "0:5404:8"
} ,
"legacyAST" : {
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol" ,
"exportedSymbols" : {
"ModuleManager" : [
1118
]
} ,
"id" : 1119 ,
"nodeType" : "SourceUnit" ,
"nodes" : [
{
"id" : 764 ,
"literals" : [
"solidity" ,
"0.4" ,
".24"
] ,
"nodeType" : "PragmaDirective" ,
"src" : "0:23:8"
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol" ,
"file" : "./Module.sol" ,
"id" : 765 ,
"nodeType" : "ImportDirective" ,
"scope" : 1119 ,
"sourceUnit" : 763 ,
"src" : "24:22:8" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol" ,
"file" : "./MasterCopy.sol" ,
"id" : 766 ,
"nodeType" : "ImportDirective" ,
"scope" : 1119 ,
"sourceUnit" : 663 ,
"src" : "47:26:8" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol" ,
"file" : "./Enum.sol" ,
"id" : 767 ,
"nodeType" : "ImportDirective" ,
"scope" : 1119 ,
"sourceUnit" : 31 ,
"src" : "74:20:8" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
"id" : 768 ,
"name" : "SelfAuthorized" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1654 ,
"src" : "329:14:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SelfAuthorized_$1654" ,
"typeString" : "contract SelfAuthorized"
}
} ,
"id" : 769 ,
"nodeType" : "InheritanceSpecifier" ,
"src" : "329:14:8"
}
] ,
"contractDependencies" : [
1654
] ,
"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" : 1118 ,
"linearizedBaseContracts" : [
1118 ,
1654
] ,
"name" : "ModuleManager" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"anonymous" : false ,
"documentation" : null ,
"id" : 773 ,
"name" : "ContractCreation" ,
"nodeType" : "EventDefinition" ,
"parameters" : {
"id" : 772 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 771 ,
"indexed" : false ,
"name" : "newContract" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 773 ,
"src" : "374:19:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 770 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "374:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "373:21:8"
} ,
"src" : "351:44:8"
} ,
{
"constant" : true ,
"id" : 776 ,
"name" : "NAME" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1118 ,
"src" : "401:46:8" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
} ,
"typeName" : {
"id" : 774 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "401:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "4d6f64756c65204d616e61676572" ,
"id" : 775 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "431:16:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_12aaa44a1bae367a1e1d9881f5d80283afded6373c2a1ca586db420944084efb" ,
"typeString" : "literal_string \"Module Manager\""
} ,
"value" : "Module Manager"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
"id" : 779 ,
"name" : "VERSION" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1118 ,
"src" : "453:40:8" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
} ,
"typeName" : {
"id" : 777 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "453:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "302e302e31" ,
"id" : 778 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "486:7:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885" ,
"typeString" : "literal_string \"0.0.1\""
} ,
"value" : "0.0.1"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
"id" : 784 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1118 ,
"src" : "499:55:8" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 780 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "499:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "307831" ,
"id" : 782 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "550:3:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
} ,
"value" : "0x1"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
}
] ,
"id" : 781 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "542:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 783 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "542:12:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 788 ,
"name" : "modules" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1118 ,
"src" : "561:45:8" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
} ,
"typeName" : {
"id" : 787 ,
"keyType" : {
"id" : 785 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "570:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "561:28:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
} ,
"valueType" : {
"id" : 786 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "581:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 791 ,
"nodeType" : "Block" ,
"src" : "721:8:8" ,
"statements" : [ ]
} ,
"documentation" : "@dev Fallback function accepts Ether transactions." ,
"id" : 792 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 789 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "681:2:8"
} ,
"payable" : true ,
"returnParameters" : {
"id" : 790 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "721:0:8"
} ,
"scope" : 1118 ,
"src" : "672:57:8" ,
"stateMutability" : "payable" ,
"superFunction" : null ,
"visibility" : "external"
} ,
{
"body" : {
"id" : 828 ,
"nodeType" : "Block" ,
"src" : "802:342:8" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 804 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 800 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "820:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 802 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 801 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "828:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "820:25:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 803 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "849:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "820:30:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564" ,
"id" : 805 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "852:39:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77" ,
"typeString" : "literal_string \"Modules have already been initialized\""
} ,
"value" : "Modules have already been initialized"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77" ,
"typeString" : "literal_string \"Modules have already been initialized\""
}
] ,
"id" : 799 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "812:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 806 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "812:80:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 807 ,
"nodeType" : "ExpressionStatement" ,
"src" : "812:80:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 812 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 808 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "902:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 810 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 809 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "910:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "902:25:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 811 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "930:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "902:44:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 813 ,
"nodeType" : "ExpressionStatement" ,
"src" : "902:44:8"
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 816 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 814 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 794 ,
"src" : "960:2:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 815 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "966:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "960:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 827 ,
"nodeType" : "IfStatement" ,
"src" : "956:181:8" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 819 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 794 ,
"src" : "1081:2:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 820 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 796 ,
"src" : "1085:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 821 ,
"name" : "gasleft" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2647 ,
"src" : "1091:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_gasleft_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
"id" : 822 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1091:9:8" ,
"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" : 818 ,
"name" : "executeDelegateCall" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1035 ,
"src" : "1061:19:8" ,
"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" : 823 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1061:40:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e" ,
"id" : 824 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1103:33:8" ,
"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" : 817 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "1053:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 825 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1053:84:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 826 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1053:84:8"
}
}
]
} ,
"documentation" : null ,
"id" : 829 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "setupModules" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 797 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 794 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 829 ,
"src" : "757:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 793 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "757:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 796 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 829 ,
"src" : "769:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
"id" : 795 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "769:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "756:24:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 798 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "802:0:8"
} ,
"scope" : 1118 ,
"src" : "735:409:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 874 ,
"nodeType" : "Block" ,
"src" : "1386:384:8" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"id" : 847 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 841 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 838 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 831 ,
"src" : "1466:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
] ,
"id" : 837 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "1458:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 839 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1458:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 840 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1477:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "1458:20:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 846 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 843 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 831 ,
"src" : "1490:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
] ,
"id" : 842 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "1482:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 844 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1482:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 845 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "1501:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "1482:35:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "1458:59:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c6964206d6f64756c6520616464726573732070726f7669646564" ,
"id" : 848 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1519:33:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
} ,
"value" : "Invalid module address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
}
] ,
"id" : 836 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "1450:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 849 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1450:103:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 850 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1450:103:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 856 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 852 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "1612:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 854 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 853 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 831 ,
"src" : "1620:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1612:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 855 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1631:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "1612:20:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6f64756c652068617320616c7265616479206265656e206164646564" ,
"id" : 857 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1634:31:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450" ,
"typeString" : "literal_string \"Module has already been added\""
} ,
"value" : "Module has already been added"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450" ,
"typeString" : "literal_string \"Module has already been added\""
}
] ,
"id" : 851 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "1604:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 858 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1604:62:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 859 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1604:62:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 866 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 860 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "1676:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 862 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 861 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 831 ,
"src" : "1684:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "1676:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 863 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "1694:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 865 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 864 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "1702:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1694:25:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "1676:43:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 867 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1676:43:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 872 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 868 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "1729:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 870 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 869 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "1737:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "1729:25:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 871 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 831 ,
"src" : "1757:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"src" : "1729:34:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 873 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1729:34:8"
}
]
} ,
"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" : 875 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
"id" : 834 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 833 ,
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1653 ,
"src" : "1371:10:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "1371:10:8"
}
] ,
"name" : "enableModule" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 832 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 831 ,
"name" : "module" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 875 ,
"src" : "1333:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 830 ,
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 762 ,
"src" : "1333:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1332:15:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 835 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1386:0:8"
} ,
"scope" : 1118 ,
"src" : "1311:459:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 909 ,
"nodeType" : "Block" ,
"src" : "2126:248:8" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 891 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 885 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "2208:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 887 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 886 ,
"name" : "prevModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 877 ,
"src" : "2216:10:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2208:19:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 889 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 879 ,
"src" : "2239:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
] ,
"id" : 888 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "2231:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 890 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2231:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "2208:38:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564" ,
"id" : 892 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2248:42:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e" ,
"typeString" : "literal_string \"Invalid prevModule, module pair provided\""
} ,
"value" : "Invalid prevModule, module pair provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e" ,
"typeString" : "literal_string \"Invalid prevModule, module pair provided\""
}
] ,
"id" : 884 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2200:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 893 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2200:91:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 894 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2200:91:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 901 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 895 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "2301:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 897 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 896 ,
"name" : "prevModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 877 ,
"src" : "2309:10:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "2301:19:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 898 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "2323:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 900 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 899 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 879 ,
"src" : "2331:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2323:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "2301:37:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 902 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2301:37:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 907 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 903 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "2348:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 905 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 904 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 879 ,
"src" : "2356:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "2348:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 906 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2366:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2348:19:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 908 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2348:19:8"
}
]
} ,
"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" : 910 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
"id" : 882 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 881 ,
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1653 ,
"src" : "2111:10:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "2111:10:8"
}
] ,
"name" : "disableModule" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 880 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 877 ,
"name" : "prevModule" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 910 ,
"src" : "2054:17:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 876 ,
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 762 ,
"src" : "2054:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 879 ,
"name" : "module" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 910 ,
"src" : "2073:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 878 ,
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 762 ,
"src" : "2073:6:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$762" ,
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2053:34:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 883 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "2126:0:8"
} ,
"scope" : 1118 ,
"src" : "2031:343:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 944 ,
"nodeType" : "Block" ,
"src" : "2860:279:8" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 929 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 924 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "2927:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 927 ,
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 925 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2654 ,
"src" : "2935:3:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 926 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2935:10:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2927:19:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 928 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2950:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2927:24:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65" ,
"id" : 930 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2953:50:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4" ,
"typeString" : "literal_string \"Method can only be called from an enabled module\""
} ,
"value" : "Method can only be called from an enabled module"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4" ,
"typeString" : "literal_string \"Method can only be called from an enabled module\""
}
] ,
"id" : 923 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2657 ,
2658
] ,
"referencedDeclaration" : 2658 ,
"src" : "2919:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 931 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2919:85:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 932 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2919:85:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 942 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 933 ,
"name" : "success" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 921 ,
"src" : "3076:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 935 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 912 ,
"src" : "3094:2:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 936 ,
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 914 ,
"src" : "3098:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"id" : 937 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 916 ,
"src" : "3105:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"id" : 938 ,
"name" : "operation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 918 ,
"src" : "3111:9:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 939 ,
"name" : "gasleft" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2647 ,
"src" : "3122:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_gasleft_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
"id" : 940 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3122:9:8" ,
"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" : 934 ,
"name" : "execute" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1007 ,
"src" : "3086:7:8" ,
"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" : 941 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3086:46:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3076:56:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 943 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3076:56:8"
}
]
} ,
"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" : 945 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "execTransactionFromModule" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 919 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 912 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 945 ,
"src" : "2745:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 911 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2745:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 914 ,
"name" : "value" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 945 ,
"src" : "2757:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 913 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2757:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 916 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 945 ,
"src" : "2772:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
"id" : 915 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2772:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 918 ,
"name" : "operation" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 945 ,
"src" : "2784:24:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 917 ,
"name" : "Enum.Operation" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 29 ,
"src" : "2784:14:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2744:65:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 922 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 921 ,
"name" : "success" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 945 ,
"src" : "2842:12:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 920 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2842:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2841:14:8"
} ,
"scope" : 1118 ,
"src" : "2710:429:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1006 ,
"nodeType" : "Block" ,
"src" : "3294:399:8" ,
"statements" : [
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
} ,
"id" : 964 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 960 ,
"name" : "operation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 953 ,
"src" : "3308:9:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 961 ,
"name" : "Enum" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 30 ,
"src" : "3321:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_Enum_$30_$" ,
"typeString" : "type(contract Enum)"
}
} ,
"id" : 962 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 29 ,
"src" : "3321:14:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$29_$" ,
"typeString" : "type(enum Enum.Operation)"
}
} ,
"id" : 963 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "Call" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "3321:19:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
} ,
"src" : "3308:32:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : {
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
} ,
"id" : 978 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 974 ,
"name" : "operation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 953 ,
"src" : "3418:9:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 975 ,
"name" : "Enum" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 30 ,
"src" : "3431:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_Enum_$30_$" ,
"typeString" : "type(contract Enum)"
}
} ,
"id" : 976 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 29 ,
"src" : "3431:14:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$29_$" ,
"typeString" : "type(enum Enum.Operation)"
}
} ,
"id" : 977 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "DelegateCall" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "3431:27:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
} ,
"src" : "3418:40:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : {
"id" : 1003 ,
"nodeType" : "Block" ,
"src" : "3533:154:8" ,
"statements" : [
{
"assignments" : [
988
] ,
"declarations" : [
{
"constant" : false ,
"id" : 988 ,
"name" : "newContract" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1007 ,
"src" : "3547:19:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 987 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3547:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 992 ,
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 990 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 951 ,
"src" : "3583:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
] ,
"id" : 989 ,
"name" : "executeCreate" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1044 ,
"src" : "3569:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$" ,
"typeString" : "function (bytes memory) returns (address)"
}
} ,
"id" : 991 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3569:19:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "3547:41:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 997 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 993 ,
"name" : "success" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 958 ,
"src" : "3602:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 996 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 994 ,
"name" : "newContract" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 988 ,
"src" : "3612:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 995 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3627:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3612:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3602:26:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 998 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3602:26:8"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1000 ,
"name" : "newContract" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 988 ,
"src" : "3664:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
] ,
"id" : 999 ,
"name" : "ContractCreation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 773 ,
"src" : "3647:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_address_$returns$__$" ,
"typeString" : "function (address)"
}
} ,
"id" : 1001 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3647:29:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1002 ,
"nodeType" : "EmitStatement" ,
"src" : "3642:34:8"
}
]
} ,
"id" : 1004 ,
"nodeType" : "IfStatement" ,
"src" : "3414:273:8" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"id" : 985 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 979 ,
"name" : "success" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 958 ,
"src" : "3472:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 981 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 947 ,
"src" : "3502:2:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 982 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 951 ,
"src" : "3506:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"id" : 983 ,
"name" : "txGas" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 955 ,
"src" : "3512:5:8" ,
"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" : 980 ,
"name" : "executeDelegateCall" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1035 ,
"src" : "3482:19:8" ,
"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" : 984 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3482:36:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3472:46:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 986 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3472:46:8"
}
} ,
"id" : 1005 ,
"nodeType" : "IfStatement" ,
"src" : "3304:383:8" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"id" : 972 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 965 ,
"name" : "success" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 958 ,
"src" : "3354:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 967 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 947 ,
"src" : "3376:2:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 968 ,
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 949 ,
"src" : "3380:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"id" : 969 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 951 ,
"src" : "3387:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"id" : 970 ,
"name" : "txGas" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 955 ,
"src" : "3393:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 966 ,
"name" : "executeCall" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1022 ,
"src" : "3364:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$" ,
"typeString" : "function (address,uint256,bytes memory,uint256) returns (bool)"
}
} ,
"id" : 971 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3364:35:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "3354:45:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 973 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3354:45:8"
}
}
]
} ,
"documentation" : null ,
"id" : 1007 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "execute" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 956 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 947 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1007 ,
"src" : "3162:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 946 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3162:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 949 ,
"name" : "value" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1007 ,
"src" : "3174:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 948 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3174:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 951 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1007 ,
"src" : "3189:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
"id" : 950 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3189:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 953 ,
"name" : "operation" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1007 ,
"src" : "3201:24:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 952 ,
"name" : "Enum.Operation" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 29 ,
"src" : "3201:14:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 955 ,
"name" : "txGas" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1007 ,
"src" : "3227:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 954 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3227:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3161:80:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 959 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 958 ,
"name" : "success" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1007 ,
"src" : "3276:12:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 957 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3276:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3275:14:8"
} ,
"scope" : 1118 ,
"src" : "3145:548:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1021 ,
"nodeType" : "Block" ,
"src" : "3826:182:8" ,
"statements" : [
{
"externalReferences" : [
{
"data" : {
"declaration" : 1013 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3980:4:8" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1013 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3961:4:8" ,
"valueSize" : 1
}
} ,
{
"success" : {
"declaration" : 1018 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3923:7:8" ,
"valueSize" : 1
}
} ,
{
"txGas" : {
"declaration" : 1015 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3939:5:8" ,
"valueSize" : 1
}
} ,
{
"to" : {
"declaration" : 1009 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3946:2:8" ,
"valueSize" : 1
}
} ,
{
"value" : {
"declaration" : 1011 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3950:5:8" ,
"valueSize" : 1
}
}
] ,
"id" : 1020 ,
"nodeType" : "InlineAssembly" ,
"operations" : "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}" ,
"src" : "3900:108:8"
}
]
} ,
"documentation" : null ,
"id" : 1022 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "executeCall" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1016 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1009 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1022 ,
"src" : "3720:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1008 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3720:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1011 ,
"name" : "value" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1022 ,
"src" : "3732:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1010 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3732:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1013 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1022 ,
"src" : "3747:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
"id" : 1012 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3747:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1015 ,
"name" : "txGas" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1022 ,
"src" : "3759:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1014 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3759:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3719:54:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1019 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1018 ,
"name" : "success" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1022 ,
"src" : "3808:12:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 1017 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3808:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3807:14:8"
} ,
"scope" : 1118 ,
"src" : "3699:309:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1034 ,
"nodeType" : "Block" ,
"src" : "4134:183:8" ,
"statements" : [
{
"externalReferences" : [
{
"data" : {
"declaration" : 1026 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4289:4:8" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1026 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4270:4:8" ,
"valueSize" : 1
}
} ,
{
"success" : {
"declaration" : 1031 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4231:7:8" ,
"valueSize" : 1
}
} ,
{
"txGas" : {
"declaration" : 1028 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4255:5:8" ,
"valueSize" : 1
}
} ,
{
"to" : {
"declaration" : 1024 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4262:2:8" ,
"valueSize" : 1
}
}
] ,
"id" : 1033 ,
"nodeType" : "InlineAssembly" ,
"operations" : "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}" ,
"src" : "4208:109:8"
}
]
} ,
"documentation" : null ,
"id" : 1035 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "executeDelegateCall" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1029 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1024 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1035 ,
"src" : "4043:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1023 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4043:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1026 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1035 ,
"src" : "4055:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
"id" : 1025 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4055:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1028 ,
"name" : "txGas" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1035 ,
"src" : "4067:13:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1027 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4067:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4042:39:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1032 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1031 ,
"name" : "success" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1035 ,
"src" : "4116:12:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 1030 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4116:4:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4115:14:8"
} ,
"scope" : 1118 ,
"src" : "4014:303:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1043 ,
"nodeType" : "Block" ,
"src" : "4417:167:8" ,
"statements" : [
{
"externalReferences" : [
{
"newContract" : {
"declaration" : 1040 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4514:11:8" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1037 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4543:4:8" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1037 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "4562:4:8" ,
"valueSize" : 1
}
}
] ,
"id" : 1042 ,
"nodeType" : "InlineAssembly" ,
"operations" : "{\n newContract := create(0, add(data, 0x20), mload(data))\n}" ,
"src" : "4491:93:8"
}
]
} ,
"documentation" : null ,
"id" : 1044 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "executeCreate" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1038 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1037 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1044 ,
"src" : "4346:10:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
"id" : 1036 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4346:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4345:12:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1041 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1040 ,
"name" : "newContract" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1044 ,
"src" : "4392:19:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1039 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4392:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4391:21:8"
} ,
"scope" : 1118 ,
"src" : "4323:261:8" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1116 ,
"nodeType" : "Block" ,
"src" : "4745:656:8" ,
"statements" : [
{
"assignments" : [
1051
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1051 ,
"name" : "moduleCount" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1117 ,
"src" : "4789:19:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1050 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4789:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1053 ,
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1052 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4811:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "4789:23:8"
} ,
{
"assignments" : [
1055
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1055 ,
"name" : "currentModule" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1117 ,
"src" : "4822:21:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1054 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4822:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1059 ,
"initialValue" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1056 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "4846:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1058 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1057 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "4854:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4846:25:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "4822:49:8"
} ,
{
"body" : {
"id" : 1072 ,
"nodeType" : "Block" ,
"src" : "4922:91:8" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1067 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1063 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "4936:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1064 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "4952:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1066 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1065 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "4960:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4952:22:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "4936:38:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1068 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4936:38:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1070 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "4988:14:8" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1069 ,
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1051 ,
"src" : "4988:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1071 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4988:14:8"
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1062 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1060 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "4887:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1061 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "4904:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "4887:33:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1073 ,
"nodeType" : "WhileStatement" ,
"src" : "4881:132:8"
} ,
{
"assignments" : [
1077
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1077 ,
"name" : "array" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1117 ,
"src" : "5022:22:8" ,
"stateVariable" : false ,
"storageLocation" : "memory" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
"id" : 1075 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5022:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1076 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "5022:9:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1083 ,
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1081 ,
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1051 ,
"src" : "5061:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 1080 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "NewExpression" ,
"src" : "5047:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$" ,
"typeString" : "function (uint256) pure returns (address[] memory)"
} ,
"typeName" : {
"baseType" : {
"id" : 1078 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5051:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1079 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "5051:9:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
}
} ,
"id" : 1082 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5047:26:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory" ,
"typeString" : "address[] memory"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "5022:51:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1086 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1084 ,
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1051 ,
"src" : "5117:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1085 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5131:1:8" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "5117:15:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1087 ,
"nodeType" : "ExpressionStatement" ,
"src" : "5117:15:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1092 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1088 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "5142:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1089 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "5158:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1091 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1090 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "5166:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "5158:25:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "5142:41:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1093 ,
"nodeType" : "ExpressionStatement" ,
"src" : "5142:41:8"
} ,
{
"body" : {
"id" : 1112 ,
"nodeType" : "Block" ,
"src" : "5234:139:8" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1101 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1097 ,
"name" : "array" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1077 ,
"src" : "5248:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1099 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1098 ,
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1051 ,
"src" : "5254:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "5248:18:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1100 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "5269:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "5248:34:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1102 ,
"nodeType" : "ExpressionStatement" ,
"src" : "5248:34:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1107 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1103 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "5296:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1104 ,
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 788 ,
"src" : "5312:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
"id" : 1106 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1105 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "5320:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "5312:22:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "5296:38:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1108 ,
"nodeType" : "ExpressionStatement" ,
"src" : "5296:38:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1110 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "5348:14:8" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1109 ,
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1051 ,
"src" : "5348:11:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1111 ,
"nodeType" : "ExpressionStatement" ,
"src" : "5348:14:8"
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1096 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1094 ,
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1055 ,
"src" : "5199:13:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1095 ,
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 784 ,
"src" : "5216:16:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "5199:33:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1113 ,
"nodeType" : "WhileStatement" ,
"src" : "5193:180:8"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1114 ,
"name" : "array" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1077 ,
"src" : "5389:5:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"functionReturnParameters" : 1049 ,
"id" : 1115 ,
"nodeType" : "Return" ,
"src" : "5382:12:8"
}
]
} ,
"documentation" : "@dev Returns array of modules.\n @return Array of modules." ,
"id" : 1117 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "getModules" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1045 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "4682:2:8"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1049 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1048 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1117 ,
"src" : "4730:9:8" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
"id" : 1046 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4730:7:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1047 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "4730:9:8" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4729:11:8"
} ,
"scope" : 1118 ,
"src" : "4663:738:8" ,
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
}
] ,
"scope" : 1119 ,
"src" : "303:5100:8"
}
] ,
"src" : "0:5404:8"
} ,
"compiler" : {
"name" : "solc" ,
"version" : "0.4.24+commit.e67f0147.Emscripten.clang"
} ,
"networks" : { } ,
"schemaVersion" : "2.0.0" ,
2018-06-15 07:31:07 +00:00
"updatedAt" : "2018-06-15T07:49:20.494Z"
2018-05-31 13:01:02 +00:00
}