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"
} ,
{
2018-09-26 09:19:53 +00:00
"payable" : true ,
"stateMutability" : "payable" ,
"type" : "fallback"
} ,
{
"anonymous" : false ,
"inputs" : [
2018-05-31 13:01:02 +00:00
{
2018-09-26 09:19:53 +00:00
"indexed" : false ,
"name" : "module" ,
"type" : "address"
2018-05-31 13:01:02 +00:00
}
] ,
2018-09-26 09:19:53 +00:00
"name" : "EnabledModule" ,
"type" : "event"
2018-05-31 13:01:02 +00:00
} ,
{
2018-09-26 09:19:53 +00:00
"anonymous" : false ,
"inputs" : [
2018-05-31 13:01:02 +00:00
{
2018-09-26 09:19:53 +00:00
"indexed" : false ,
"name" : "module" ,
"type" : "address"
2018-05-31 13:01:02 +00:00
}
] ,
2018-09-26 09:19:53 +00:00
"name" : "DisabledModule" ,
"type" : "event"
2018-05-31 13:01:02 +00:00
} ,
{
"anonymous" : false ,
"inputs" : [
{
"indexed" : false ,
"name" : "newContract" ,
"type" : "address"
}
] ,
"name" : "ContractCreation" ,
"type" : "event"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "module" ,
"type" : "address"
}
] ,
"name" : "enableModule" ,
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "prevModule" ,
"type" : "address"
} ,
{
"name" : "module" ,
"type" : "address"
}
] ,
"name" : "disableModule" ,
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "to" ,
"type" : "address"
} ,
{
"name" : "value" ,
"type" : "uint256"
} ,
{
"name" : "data" ,
"type" : "bytes"
} ,
{
"name" : "operation" ,
"type" : "uint8"
}
] ,
"name" : "execTransactionFromModule" ,
"outputs" : [
{
"name" : "success" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "getModules" ,
"outputs" : [
{
"name" : "" ,
"type" : "address[]"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
}
] ,
2018-09-26 09:19:53 +00:00
"bytecode" : " 0 x 608060405234801561001057600080 f d 5 b 50611083806100206000396000 f 30060806040526004361061006 d 576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 168063468721 a 71461006 f 578063610 b 59251461012757806385e332 c d 1461016 a 578063 b 2494 d f 3146101 c 1578063e009 c f d e 1461022 d 575 b 0 0 5 b 34801561007 b 57600080 f d 5 b 5061010 d 600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919080359060200190929190803590602001908201803590602001908080601 f 0 160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560 f f 169060200190929190505050610290565 b 604051808215151515815260200191505060405180910390 f 35 b 34801561013357600080 f d 5 b 50610168600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909291905050506103 b b 565 b 0 0 5 b 34801561017657600080 f d 5 b 5061017 f 6107 f 8565 b 604051808273 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200191505060405180910390 f 35 b 3480156101 c d 57600080 f d 5 b 506101 d 66107 f d 565 b 6040518080602001828103825283818151815260200191508051906020019060200280838360005 b 838110156102195780820151818401526020810190506101 f e 565 b 505050509050019250505060405180910390 f 35 b 34801561023957600080 f d 5 b 5061028e600480360381019080803573 f f f f f f f f f f f f f f f f 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 a a 0 565 b 0 0 5 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 16141515156103 a 4576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 6103 b 1858585855 a 610 f 18565 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 16141515610484576040517 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 16141580156104 d 85750600173 f f f f f f f f f f f f f f f f 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 151561054 c 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 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 16141515610638576040517 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 f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002060006101000 a 81548173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 0 21916908373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16021790555080600080600173 f f f f f f f f f f f f f f f f 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 16815260200190815260200160002060006101000 a 81548173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 0 21916908373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1602179055507 f e c d f 3 a 3 e f f e a 5783 a 3 c 4 c 2140e677577666428 d 44 e d 9 d 474 a 0 b 3 a 4 c 9943 f 844081604051808273 f f f f f f f f f f f f f f f f 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
"deployedBytecode" : " 0 x 60806040526004361061006 d 576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 168063468721 a 71461006 f 578063610 b 59251461012757806385e332 c d 1461016 a 578063 b 2494 d f 3146101 c 1578063e009 c f d e 1461022 d 575 b 0 0 5 b 34801561007 b 57600080 f d 5 b 5061010 d 600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919080359060200190929190803590602001908201803590602001908080601 f 0 160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560 f f 169060200190929190505050610290565 b 604051808215151515815260200191505060405180910390 f 35 b 34801561013357600080 f d 5 b 50610168600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909291905050506103 b b 565 b 0 0 5 b 34801561017657600080 f d 5 b 5061017 f 6107 f 8565 b 604051808273 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200191505060405180910390 f 35 b 3480156101 c d 57600080 f d 5 b 506101 d 66107 f d 565 b 6040518080602001828103825283818151815260200191508051906020019060200280838360005 b 838110156102195780820151818401526020810190506101 f e 565 b 505050509050019250505060405180910390 f 35 b 34801561023957600080 f d 5 b 5061028e600480360381019080803573 f f f f f f f f f f f f f f f f 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 a a 0 565 b 0 0 5 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 16141515156103 a 4576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 6103 b 1858585855 a 610 f 18565 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 16141515610484576040517 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 16141580156104 d 85750600173 f f f f f f f f f f f f f f f f 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 151561054 c 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 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 16141515610638576040517 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 f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002060006101000 a 81548173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 0 21916908373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16021790555080600080600173 f f f f f f f f f f f f f f f f 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 16815260200190815260200160002060006101000 a 81548173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 0 21916908373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1602179055507 f e c d f 3 a 3 e f f e a 5783 a 3 c 4 c 2140e677577666428 d 44 e d 9 d 474 a 0 b 3 a 4 c 9943 f 844081604051808273 f f f f f f f f f f f f f f f f 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 1681526020019150506040518091
"sourceMap" : "348:3685:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;348:3685:5;;;;;;;" ,
"deployedSourceMap" : "348:3685:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2785:429:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:495;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:495:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;3293:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3293:738:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3293:738:5;;;;;;;;;;;;;;;;;1938:511;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1938:511:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429;2917:12;3025:1;3002:7;:19;3010:10;3002:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2994:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3161:46;3169:2;3173:5;3180:4;3186:9;3197;3161:7;:46::i;:::-;3151:56;;2785:429;;;;;;:::o;1182:495::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:5;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1649:21;1663:6;1649:21;;;;;;;;;;;;;;;;;;;;;;1182:495;:::o;488:55::-;539:3;488:55;:::o;3293:738::-;3360:9;3419:19;3452:21;3652:22;3441:1;3419:23;;3476:7;:25;539:3;3476:25;;;;;;;;;;;;;;;;;;;;;;;;;3452:49;;3511:132;539:3;3517:33;;:13;:33;;;;3511:132;;;3582:7;:22;3590:13;3582:22;;;;;;;;;;;;;;;;;;;;;;;;;3566:38;;3618:14;;;;;;;3511:132;;;3691:11;3677: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;3677:26:5;;;;3652:51;;3761:1;3747:15;;3788:7;:25;539:3;3788:25;;;;;;;;;;;;;;;;;;;;;;;;;3772:41;;3823:180;539:3;3829:33;;:13;:33;;;;3823:180;;;3899:13;3878:5;3884:11;3878:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3942:7;:22;3950:13;3942:22;;;;;;;;;;;;;;;;;;;;;;;;;3926:38;;3978:14;;;;;;;3823:180;;;4019:5;4012:12;;3293:738;;;;:::o;1938:511::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2152:1:5;2141:6;2133:20;;;;:59;;;;;539:3;2157:35;;2165:6;2157:35;;;;2133:59;2125:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:6;2246:38;;:7;:19;2254:10;2246:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2238:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2361:7;:15;2369:6;2361:15;;;;;;;;;;;;;;;;;;;;;;;;;2339:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2404:1;2386:7;:15;2394:6;2386:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2420:22;2435:6;2420:22;;;;;;;;;;;;;;;;;;;;;;1938:511;;:::o;313:548:3:-;444:12;715:19;489;476:32;;;;;;;;:9;:32;;;;;;;;;472:383;;;532:35;544:2;548:5;555:4;561:5;532:11;:35::i;:::-;522:45;;472:383;;;599:27;586:40;;;;;;;;:9;:40;;;;;;;;;582:273;;;650:36;670:2;674:4;680:5;650:19;:36::i;:::-;640:46;;582:273;;;737:19;751:4;737:13;:19::i;:::-;715:41;;795:1;780:11;:16;;;;770:26;;815:29;832:11;815:29;;;;;;;;;;;;;;;;;;;;;;582:273;472:383;313:548;;;;;;;;:::o;867:309::-;976:12;1158:1;1155;1148:4;1142:11;1135:4;1129;1125:15;1118:5;1114:2;1107:5;1102:58;1091:69;;1077:93;;;;;;:::o;1182:303::-;1284:12;1467:1;1464;1457:4;1451:11;1444:4;1438;1434:15;1430:2;1423:5;1410:59;1399:70;;1385:94;;;;;:::o;1491:261::-;1560:19;1730:4;1724:11;1717:4;1711;1707:15;1704:1;1697:39;1682:54;;1668:78;;;:::o" ,
"source" : "pragma solidity 0.4.24;\nimport \"../common/Enum.sol\";\nimport \"../common/SelfAuthorized.sol\";\nimport \"./Executor.sol\";\nimport \"./Module.sol\";\n\n\n/// @title Module Manager - A contract that manages modules that can execute transactions via this contract\n/// @author Stefan George - <stefan@gnosis.pm>\n/// @author Richard Meissner - <richard@gnosis.pm>\ncontract ModuleManager is SelfAuthorized, Executor {\n\n event EnabledModule(Module module);\n event DisabledModule(Module module);\n\n address public constant SENTINEL_MODULES = address(0x1);\n\n mapping (address => address) internal modules;\n \n function setupModules(address to, bytes data)\n internal\n {\n require(modules[SENTINEL_MODULES] == 0, \"Modules have already been initialized\");\n modules[SENTINEL_MODULES] = SENTINEL_MODULES;\n if (to != 0)\n // Setup has to complete successfully or transaction fails.\n require(executeDelegateCall(to, data, gasleft()), \"Could not finish initialization\");\n }\n\n /// @dev Allows to add a module to the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param module Module to be whitelisted.\n function enableModule(Module module)\n public\n authorized\n {\n // Module address cannot be null or sentinel.\n require(address(module) != 0 && address(module) != SENTINEL_MODULES, \"Invalid module address provided\");\n // Module cannot be added twice.\n require(modules[module] == 0, \"Module has already been added\");\n modules[module] = modules[SENTINEL_MODULES];\n modules[SENTINEL_MODULES] = module;\n emit EnabledModule(module);\n }\n\n /// @dev Allows to remove a module from the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param prevModule Module that pointed to the module to be removed in the linked list\n /// @param module Module to be removed.\n function disableModule(Module prevModule, Module module)\n public\n authorized\n {\n // Validate module address and check that it corresponds to module index.\n require(address(module) != 0 && address(module) != SENTINEL_MODULES, \"Invalid module address provided\");\n require(modules[prevModule] == address(module), \"Invalid prevModule, module pair provided\");\n modules[prevModule] = modules[module];\n modules[module] = 0;\n emit DisabledModule(module);\n }\n\n /// @dev Allows a Module to execute a Safe transaction without any further confirmations.\n /// @param to Destination address of module transaction.\n /// @param value Ether value of module transaction.\n /// @param data Data payload of module transaction.\n /// @param operation Operation type of module transaction.\n function execTransactionFromModule(address to, uint256 value, bytes data, Enum.Operation operation)\n public\n returns (bool success)\n {\n // Only whitelisted modules are allowed.\n require(modules[msg.sender] != 0, \"Method can only be called from an enabled module\" ) ; \ n // Execute transaction without further confirmations.\n success = execute(to, value, data, operation, gasleft());\n }\n\n /// @dev Returns array of modules.\n /// @return Array of modules.\n function getModules()\n public\n view\n returns (address[])\n {\n // Calculate module count\n uint256 moduleCount = 0;\n address currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n currentModule = modules[currentModule];\n moduleCount ++;\n }\n address[] memory array = new address[](moduleCount);\n\n // populate return array\n moduleCount = 0;\n currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n array[moduleCount] = currentModule;\n currentModule = modules[currentModule
"sourcePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol" ,
2018-05-31 13:01:02 +00:00
"ast" : {
2018-09-26 09:19:53 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol" ,
2018-05-31 13:01:02 +00:00
"exportedSymbols" : {
"ModuleManager" : [
2018-09-26 09:19:53 +00:00
1212
2018-05-31 13:01:02 +00:00
]
} ,
2018-09-26 09:19:53 +00:00
"id" : 1213 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "SourceUnit" ,
"nodes" : [
{
2018-09-26 09:19:53 +00:00
"id" : 937 ,
2018-05-31 13:01:02 +00:00
"literals" : [
"solidity" ,
"0.4" ,
".24"
] ,
"nodeType" : "PragmaDirective" ,
2018-09-26 09:19:53 +00:00
"src" : "0:23:5"
2018-05-31 13:01:02 +00:00
} ,
{
2018-09-26 09:19:53 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol" ,
"file" : "../common/Enum.sol" ,
"id" : 938 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ImportDirective" ,
2018-09-26 09:19:53 +00:00
"scope" : 1213 ,
"sourceUnit" : 1660 ,
"src" : "24:28:5" ,
2018-05-31 13:01:02 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
2018-09-26 09:19:53 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol" ,
"file" : "../common/SelfAuthorized.sol" ,
"id" : 939 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ImportDirective" ,
2018-09-26 09:19:53 +00:00
"scope" : 1213 ,
"sourceUnit" : 1736 ,
"src" : "53:38:5" ,
2018-05-31 13:01:02 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
2018-09-26 09:19:53 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol" ,
"file" : "./Executor.sol" ,
"id" : 940 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ImportDirective" ,
2018-09-26 09:19:53 +00:00
"scope" : 1213 ,
"sourceUnit" : 893 ,
"src" : "92:24:5" ,
2018-08-20 07:59:16 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
2018-09-26 09:19:53 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol" ,
"file" : "./Module.sol" ,
"id" : 941 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ImportDirective" ,
2018-09-26 09:19:53 +00:00
"scope" : 1213 ,
"sourceUnit" : 936 ,
"src" : "117:22:5" ,
2018-05-31 13:01:02 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
2018-09-26 09:19:53 +00:00
"id" : 942 ,
2018-05-31 13:01:02 +00:00
"name" : "SelfAuthorized" ,
"nodeType" : "UserDefinedTypeName" ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1735 ,
"src" : "374:14:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_SelfAuthorized_$1735" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract SelfAuthorized"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 943 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "InheritanceSpecifier" ,
2018-09-26 09:19:53 +00:00
"src" : "374:14:5"
2018-08-20 07:59:16 +00:00
} ,
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
2018-09-26 09:19:53 +00:00
"id" : 944 ,
2018-08-20 07:59:16 +00:00
"name" : "Executor" ,
"nodeType" : "UserDefinedTypeName" ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 892 ,
"src" : "390:8:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Executor_$892" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Executor"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 945 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "InheritanceSpecifier" ,
2018-09-26 09:19:53 +00:00
"src" : "390:8:5"
2018-05-31 13:01:02 +00:00
}
] ,
"contractDependencies" : [
2018-09-26 09:19:53 +00:00
892 ,
1666 ,
1735
2018-05-31 13:01:02 +00:00
] ,
"contractKind" : "contract" ,
"documentation" : "@title Module Manager - A contract that manages modules that can execute transactions via this contract\n @author Stefan George - <stefan@gnosis.pm>\n @author Richard Meissner - <richard@gnosis.pm>" ,
"fullyImplemented" : true ,
2018-09-26 09:19:53 +00:00
"id" : 1212 ,
2018-05-31 13:01:02 +00:00
"linearizedBaseContracts" : [
2018-09-26 09:19:53 +00:00
1212 ,
892 ,
1666 ,
1735
2018-05-31 13:01:02 +00:00
] ,
"name" : "ModuleManager" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
2018-09-26 09:19:53 +00:00
"anonymous" : false ,
"documentation" : null ,
"id" : 949 ,
"name" : "EnabledModule" ,
"nodeType" : "EventDefinition" ,
"parameters" : {
"id" : 948 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 947 ,
"indexed" : false ,
"name" : "module" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 949 ,
"src" : "426:13:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 946 ,
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 935 ,
"src" : "426:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "425:15:5"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"src" : "406:35:5"
2018-05-31 13:01:02 +00:00
} ,
{
2018-09-26 09:19:53 +00:00
"anonymous" : false ,
"documentation" : null ,
"id" : 953 ,
"name" : "DisabledModule" ,
"nodeType" : "EventDefinition" ,
"parameters" : {
"id" : 952 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 951 ,
"indexed" : false ,
"name" : "module" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 953 ,
"src" : "467:13:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 950 ,
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 935 ,
"src" : "467:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "466:15:5"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"src" : "446:36:5"
2018-05-31 13:01:02 +00:00
} ,
{
"constant" : true ,
2018-09-26 09:19:53 +00:00
"id" : 958 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1212 ,
"src" : "488:55:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 954 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "488:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "307831" ,
2018-09-26 09:19:53 +00:00
"id" : 956 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "539:3:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
} ,
"value" : "0x1"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 955 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-09-26 09:19:53 +00:00
"src" : "531:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 957 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "531:12:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 962 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1212 ,
"src" : "550:45:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 961 ,
2018-05-31 13:01:02 +00:00
"keyType" : {
2018-09-26 09:19:53 +00:00
"id" : 959 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "559:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
2018-09-26 09:19:53 +00:00
"src" : "550:28:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
} ,
"valueType" : {
2018-09-26 09:19:53 +00:00
"id" : 960 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "570:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"body" : {
2018-09-26 09:19:53 +00:00
"id" : 998 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-09-26 09:19:53 +00:00
"src" : "673:342:5" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 974 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 970 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "691:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 972 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 971 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "699:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "691:25:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 973 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "720:1:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-09-26 09:19:53 +00:00
"src" : "691:30:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564" ,
2018-09-26 09:19:53 +00:00
"id" : 975 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "723:39:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77" ,
"typeString" : "literal_string \"Modules have already been initialized\""
} ,
"value" : "Modules have already been initialized"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77" ,
"typeString" : "literal_string \"Modules have already been initialized\""
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 969 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-09-26 09:19:53 +00:00
4494 ,
4495
2018-05-31 13:01:02 +00:00
] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4495 ,
"src" : "683:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 976 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "683:80:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 977 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "683:80:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 982 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 978 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "773:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 980 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 979 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "781:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "773:25:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 981 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "801:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "773:44:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 983 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "773:44:5"
2018-05-31 13:01:02 +00:00
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 986 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 984 ,
2018-05-31 13:01:02 +00:00
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 964 ,
"src" : "831:2:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 985 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "837:1:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-09-26 09:19:53 +00:00
"src" : "831:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
2018-09-26 09:19:53 +00:00
"id" : 997 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "IfStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "827:181:5" ,
2018-05-31 13:01:02 +00:00
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 989 ,
2018-05-31 13:01:02 +00:00
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 964 ,
"src" : "952:2:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 990 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 966 ,
"src" : "956:4:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2018-09-26 09:19:53 +00:00
"id" : 991 ,
2018-05-31 13:01:02 +00:00
"name" : "gasleft" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4484 ,
"src" : "962:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_gasleft_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 992 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "962:9:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 988 ,
2018-05-31 13:01:02 +00:00
"name" : "executeDelegateCall" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 882 ,
"src" : "932:19:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$" ,
"typeString" : "function (address,bytes memory,uint256) returns (bool)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 993 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "932:40:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e" ,
2018-09-26 09:19:53 +00:00
"id" : 994 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "974:33:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa" ,
"typeString" : "literal_string \"Could not finish initialization\""
} ,
"value" : "Could not finish initialization"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa" ,
"typeString" : "literal_string \"Could not finish initialization\""
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 987 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-09-26 09:19:53 +00:00
4494 ,
4495
2018-05-31 13:01:02 +00:00
] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4495 ,
"src" : "924:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 995 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "924:84:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 996 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "924:84:5"
2018-05-31 13:01:02 +00:00
}
}
]
} ,
"documentation" : null ,
2018-09-26 09:19:53 +00:00
"id" : 999 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "setupModules" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-09-26 09:19:53 +00:00
"id" : 967 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 964 ,
2018-05-31 13:01:02 +00:00
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 999 ,
"src" : "628:10:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 963 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "628:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 966 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 999 ,
"src" : "640:10:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 965 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "640:5:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"src" : "627:24:5"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-09-26 09:19:53 +00:00
"id" : 968 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-09-26 09:19:53 +00:00
"src" : "673:0:5"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"scope" : 1212 ,
"src" : "606:409:5" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
2018-09-26 09:19:53 +00:00
"id" : 1048 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-09-26 09:19:53 +00:00
"src" : "1257:420:5" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1017 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1011 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1008 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1001 ,
"src" : "1337:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1007 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-09-26 09:19:53 +00:00
"src" : "1329:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1009 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "1329:15:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 1010 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "1348:1:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-09-26 09:19:53 +00:00
"src" : "1329:20:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1016 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1013 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1001 ,
"src" : "1361:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1012 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-09-26 09:19:53 +00:00
"src" : "1353:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1014 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "1353:15:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1015 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "1372:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "1353:35:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "1329:59:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c6964206d6f64756c6520616464726573732070726f7669646564" ,
2018-09-26 09:19:53 +00:00
"id" : 1018 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "1390:33:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
} ,
"value" : "Invalid module address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1006 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-09-26 09:19:53 +00:00
4494 ,
4495
2018-05-31 13:01:02 +00:00
] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4495 ,
"src" : "1321:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1019 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "1321:103:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1020 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "1321:103:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1026 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1022 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "1483:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1024 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1023 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1001 ,
"src" : "1491:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "1483:15:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 1025 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "1502:1:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-09-26 09:19:53 +00:00
"src" : "1483:20:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6f64756c652068617320616c7265616479206265656e206164646564" ,
2018-09-26 09:19:53 +00:00
"id" : 1027 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "1505:31:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450" ,
"typeString" : "literal_string \"Module has already been added\""
} ,
"value" : "Module has already been added"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450" ,
"typeString" : "literal_string \"Module has already been added\""
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1021 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-09-26 09:19:53 +00:00
4494 ,
4495
2018-05-31 13:01:02 +00:00
] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4495 ,
"src" : "1475:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1028 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "1475:62:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1029 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "1475:62:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1036 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1030 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "1547:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1032 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1031 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1001 ,
"src" : "1555:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "1547:15:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1033 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "1565:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1035 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1034 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "1573:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "1565:25:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "1547:43:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1037 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "1547:43:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1042 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1038 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "1600:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1040 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1039 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "1608:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "1600:25:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1041 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1001 ,
"src" : "1628:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "1600:34:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1043 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "1600:34:5"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1045 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1001 ,
"src" : "1663:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
}
] ,
"id" : 1044 ,
"name" : "EnabledModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 949 ,
"src" : "1649:13:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$" ,
"typeString" : "function (contract Module)"
}
} ,
"id" : 1046 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1649:21:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1047 ,
"nodeType" : "EmitStatement" ,
"src" : "1644:26:5"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Allows to add a module to the whitelist.\n This can only be done via a Safe transaction.\n @param module Module to be whitelisted." ,
2018-09-26 09:19:53 +00:00
"id" : 1049 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1004 ,
2018-05-31 13:01:02 +00:00
"modifierName" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1003 ,
2018-05-31 13:01:02 +00:00
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1734 ,
"src" : "1242:10:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
2018-09-26 09:19:53 +00:00
"src" : "1242:10:5"
2018-05-31 13:01:02 +00:00
}
] ,
"name" : "enableModule" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1002 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1001 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1049 ,
"src" : "1204:13:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1000 ,
2018-05-31 13:01:02 +00:00
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 935 ,
"src" : "1204:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"src" : "1203:15:5"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1005 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-09-26 09:19:53 +00:00
"src" : "1257:0:5"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"scope" : 1212 ,
"src" : "1182:495:5" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-09-26 09:19:53 +00:00
"id" : 1102 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-09-26 09:19:53 +00:00
"src" : "2033:416:5" ,
2018-05-31 13:01:02 +00:00
"statements" : [
2018-06-20 08:09:14 +00:00
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1069 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1063 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1060 ,
2018-06-20 08:09:14 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1053 ,
"src" : "2141:6:5" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-06-20 08:09:14 +00:00
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-06-20 08:09:14 +00:00
"typeString" : "contract Module"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1059 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-09-26 09:19:53 +00:00
"src" : "2133:7:5" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1061 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "2133:15:5" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 1062 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "2152:1:5" ,
2018-06-20 08:09:14 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-09-26 09:19:53 +00:00
"src" : "2133:20:5" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1068 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1065 ,
2018-06-20 08:09:14 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1053 ,
"src" : "2165:6:5" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-06-20 08:09:14 +00:00
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-06-20 08:09:14 +00:00
"typeString" : "contract Module"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1064 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-09-26 09:19:53 +00:00
"src" : "2157:7:5" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1066 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "2157:15:5" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1067 ,
2018-06-20 08:09:14 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "2176:16:5" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "2157:35:5" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "2133:59:5" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c6964206d6f64756c6520616464726573732070726f7669646564" ,
2018-09-26 09:19:53 +00:00
"id" : 1070 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "2194:33:5" ,
2018-06-20 08:09:14 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
} ,
"value" : "Invalid module address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1058 ,
2018-06-20 08:09:14 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-09-26 09:19:53 +00:00
4494 ,
4495
2018-06-20 08:09:14 +00:00
] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4495 ,
"src" : "2125:7:5" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1071 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "2125:103:5" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1072 ,
2018-06-20 08:09:14 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "2125:103:5"
2018-06-20 08:09:14 +00:00
} ,
2018-05-31 13:01:02 +00:00
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1080 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1074 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "2246:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1076 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1075 ,
2018-05-31 13:01:02 +00:00
"name" : "prevModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1051 ,
"src" : "2254:10:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "2246:19:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1078 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1053 ,
"src" : "2277:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1077 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-09-26 09:19:53 +00:00
"src" : "2269:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1079 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "2269:15:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "2246:38:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564" ,
2018-09-26 09:19:53 +00:00
"id" : 1081 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "2286:42:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e" ,
"typeString" : "literal_string \"Invalid prevModule, module pair provided\""
} ,
"value" : "Invalid prevModule, module pair provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e" ,
"typeString" : "literal_string \"Invalid prevModule, module pair provided\""
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1073 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-09-26 09:19:53 +00:00
4494 ,
4495
2018-05-31 13:01:02 +00:00
] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4495 ,
"src" : "2238:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1082 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "2238:91:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1083 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "2238:91:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1090 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1084 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "2339:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1086 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1085 ,
2018-05-31 13:01:02 +00:00
"name" : "prevModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1051 ,
"src" : "2347:10:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "2339:19:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1087 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "2361:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1089 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1088 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1053 ,
"src" : "2369:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "2361:15:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "2339:37:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1091 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "2339:37:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1096 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1092 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "2386:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1094 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1093 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1053 ,
"src" : "2394:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "2386:15:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 1095 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "2404:1:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-09-26 09:19:53 +00:00
"src" : "2386:19:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1097 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "2386:19:5"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1099 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1053 ,
"src" : "2435:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
}
] ,
"id" : 1098 ,
"name" : "DisabledModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 953 ,
"src" : "2420:14:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$" ,
"typeString" : "function (contract Module)"
}
} ,
"id" : 1100 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2420:22:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1101 ,
"nodeType" : "EmitStatement" ,
"src" : "2415:27:5"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Allows to remove a module from the whitelist.\n This can only be done via a Safe transaction.\n @param prevModule Module that pointed to the module to be removed in the linked list\n @param module Module to be removed." ,
2018-09-26 09:19:53 +00:00
"id" : 1103 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1056 ,
2018-05-31 13:01:02 +00:00
"modifierName" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1055 ,
2018-05-31 13:01:02 +00:00
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1734 ,
"src" : "2018:10:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
2018-09-26 09:19:53 +00:00
"src" : "2018:10:5"
2018-05-31 13:01:02 +00:00
}
] ,
"name" : "disableModule" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1054 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1051 ,
2018-05-31 13:01:02 +00:00
"name" : "prevModule" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1103 ,
"src" : "1961:17:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1050 ,
2018-05-31 13:01:02 +00:00
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 935 ,
"src" : "1961:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1053 ,
2018-05-31 13:01:02 +00:00
"name" : "module" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1103 ,
"src" : "1980:13:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1052 ,
2018-05-31 13:01:02 +00:00
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 935 ,
"src" : "1980:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"src" : "1960:34:5"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1057 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-09-26 09:19:53 +00:00
"src" : "2033:0:5"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"scope" : 1212 ,
"src" : "1938:511:5" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-09-26 09:19:53 +00:00
"id" : 1137 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-09-26 09:19:53 +00:00
"src" : "2935:279:5" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1122 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1117 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "3002:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1120 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1118 ,
2018-05-31 13:01:02 +00:00
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4491 ,
"src" : "3010:3:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1119 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-09-26 09:19:53 +00:00
"src" : "3010:10:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "3002:19:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 1121 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "3025:1:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-09-26 09:19:53 +00:00
"src" : "3002:24:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65" ,
2018-09-26 09:19:53 +00:00
"id" : 1123 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "3028:50:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4" ,
"typeString" : "literal_string \"Method can only be called from an enabled module\""
} ,
"value" : "Method can only be called from an enabled module"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4" ,
"typeString" : "literal_string \"Method can only be called from an enabled module\""
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1116 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-09-26 09:19:53 +00:00
4494 ,
4495
2018-05-31 13:01:02 +00:00
] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4495 ,
"src" : "2994:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1124 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "2994:85:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1125 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "2994:85:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1135 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1126 ,
2018-05-31 13:01:02 +00:00
"name" : "success" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1114 ,
"src" : "3151:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1128 ,
2018-05-31 13:01:02 +00:00
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1105 ,
"src" : "3169:2:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1129 ,
2018-05-31 13:01:02 +00:00
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1107 ,
"src" : "3173:5:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1130 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1109 ,
"src" : "3180:4:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1131 ,
2018-05-31 13:01:02 +00:00
"name" : "operation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1111 ,
"src" : "3186:9:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_enum$_Operation_$1658" ,
2018-05-31 13:01:02 +00:00
"typeString" : "enum Enum.Operation"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2018-09-26 09:19:53 +00:00
"id" : 1132 ,
2018-05-31 13:01:02 +00:00
"name" : "gasleft" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4484 ,
"src" : "3197:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_gasleft_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1133 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "3197:9:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
{
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_enum$_Operation_$1658" ,
2018-05-31 13:01:02 +00:00
"typeString" : "enum Enum.Operation"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1127 ,
2018-05-31 13:01:02 +00:00
"name" : "execute" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 854 ,
"src" : "3161:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$" ,
2018-05-31 13:01:02 +00:00
"typeString" : "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1134 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "3161:46:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "3151:56:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1136 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3151:56:5"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Allows a Module to execute a Safe transaction without any further confirmations.\n @param to Destination address of module transaction.\n @param value Ether value of module transaction.\n @param data Data payload of module transaction.\n @param operation Operation type of module transaction." ,
2018-09-26 09:19:53 +00:00
"id" : 1138 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "execTransactionFromModule" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1112 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1105 ,
2018-05-31 13:01:02 +00:00
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1138 ,
"src" : "2820:10:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 1104 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "2820:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1107 ,
2018-05-31 13:01:02 +00:00
"name" : "value" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1138 ,
"src" : "2832:13:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 1106 ,
2018-05-31 13:01:02 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "2832:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1109 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1138 ,
"src" : "2847:10:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 1108 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "2847:5:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1111 ,
2018-05-31 13:01:02 +00:00
"name" : "operation" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1138 ,
"src" : "2859:24:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_enum$_Operation_$1658" ,
2018-05-31 13:01:02 +00:00
"typeString" : "enum Enum.Operation"
} ,
"typeName" : {
"contractScope" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1110 ,
2018-05-31 13:01:02 +00:00
"name" : "Enum.Operation" ,
"nodeType" : "UserDefinedTypeName" ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1658 ,
"src" : "2859:14:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_enum$_Operation_$1658" ,
2018-05-31 13:01:02 +00:00
"typeString" : "enum Enum.Operation"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"src" : "2819:65:5"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1115 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1114 ,
2018-05-31 13:01:02 +00:00
"name" : "success" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1138 ,
"src" : "2917:12:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 1113 ,
2018-05-31 13:01:02 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "2917:4:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"src" : "2916:14:5"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"scope" : 1212 ,
"src" : "2785:429:5" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-09-26 09:19:53 +00:00
"id" : 1210 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-09-26 09:19:53 +00:00
"src" : "3375:656:5" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
2018-08-20 07:59:16 +00:00
"assignments" : [
2018-09-26 09:19:53 +00:00
1145
2018-08-20 07:59:16 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1145 ,
2018-08-20 07:59:16 +00:00
"name" : "moduleCount" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1211 ,
"src" : "3419:19:5" ,
2018-08-20 07:59:16 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 1144 ,
2018-08-20 07:59:16 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3419:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1147 ,
2018-08-20 07:59:16 +00:00
"initialValue" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 1146 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-08-20 07:59:16 +00:00
"isPure" : true ,
"kind" : "number" ,
2018-05-31 13:01:02 +00:00
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "3441:1:5" ,
2018-08-20 07:59:16 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3419:23:5"
2018-08-20 07:59:16 +00:00
} ,
{
"assignments" : [
2018-09-26 09:19:53 +00:00
1149
2018-08-20 07:59:16 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1149 ,
2018-08-20 07:59:16 +00:00
"name" : "currentModule" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1211 ,
"src" : "3452:21:5" ,
2018-08-20 07:59:16 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 1148 ,
2018-08-20 07:59:16 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3452:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1153 ,
2018-08-20 07:59:16 +00:00
"initialValue" : {
"argumentTypes" : null ,
"baseExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1150 ,
2018-08-20 07:59:16 +00:00
"name" : "modules" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "3476:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1152 ,
2018-08-20 07:59:16 +00:00
"indexExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1151 ,
2018-08-20 07:59:16 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "3484:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "3476:25:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "VariableDeclarationStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3452:49:5"
2018-08-20 07:59:16 +00:00
} ,
{
"body" : {
2018-09-26 09:19:53 +00:00
"id" : 1166 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Block" ,
2018-09-26 09:19:53 +00:00
"src" : "3552:91:5" ,
2018-08-20 07:59:16 +00:00
"statements" : [
{
2018-05-31 13:01:02 +00:00
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1161 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1157 ,
2018-08-20 07:59:16 +00:00
"name" : "currentModule" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3566:13:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1158 ,
2018-08-20 07:59:16 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "3582:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1160 ,
2018-08-20 07:59:16 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1159 ,
2018-08-20 07:59:16 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3590:13:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "3582:22:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "3566:38:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1162 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3566:38:5"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
{
"expression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1164 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-09-26 09:19:53 +00:00
"src" : "3618:14:5" ,
2018-08-20 07:59:16 +00:00
"subExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1163 ,
2018-08-20 07:59:16 +00:00
"name" : "moduleCount" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1145 ,
"src" : "3618:11:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
} ,
2018-09-26 09:19:53 +00:00
"id" : 1165 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3618:14:5"
2018-08-20 07:59:16 +00:00
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1156 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1154 ,
2018-08-20 07:59:16 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3517:13:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1155 ,
2018-08-20 07:59:16 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "3534:16:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "3517:33:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1167 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "WhileStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3511:132:5"
2018-08-20 07:59:16 +00:00
} ,
{
"assignments" : [
2018-09-26 09:19:53 +00:00
1171
2018-08-20 07:59:16 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1171 ,
2018-08-20 07:59:16 +00:00
"name" : "array" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1211 ,
"src" : "3652:22:5" ,
2018-08-20 07:59:16 +00:00
"stateVariable" : false ,
"storageLocation" : "memory" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
2018-09-26 09:19:53 +00:00
"id" : 1169 ,
2018-08-20 07:59:16 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3652:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1170 ,
2018-08-20 07:59:16 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3652:9:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1177 ,
2018-08-20 07:59:16 +00:00
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1175 ,
2018-08-20 07:59:16 +00:00
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1145 ,
"src" : "3691:11:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1174 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "NewExpression" ,
2018-09-26 09:19:53 +00:00
"src" : "3677:13:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$" ,
"typeString" : "function (uint256) pure returns (address[] memory)"
} ,
"typeName" : {
"baseType" : {
2018-09-26 09:19:53 +00:00
"id" : 1172 ,
2018-08-20 07:59:16 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3681:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1173 ,
2018-08-20 07:59:16 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3681:9:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1176 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "3677:26:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_memory" ,
"typeString" : "address[] memory"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "VariableDeclarationStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3652:51:5"
2018-05-31 13:01:02 +00:00
} ,
{
2018-08-20 07:59:16 +00:00
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1180 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1178 ,
2018-08-20 07:59:16 +00:00
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1145 ,
"src" : "3747:11:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 1179 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "3761:1:5" ,
2018-08-20 07:59:16 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-09-26 09:19:53 +00:00
"src" : "3747:15:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1181 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3747:15:5"
2018-05-31 13:01:02 +00:00
} ,
{
2018-08-20 07:59:16 +00:00
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1186 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1182 ,
2018-08-20 07:59:16 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3772:13:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1183 ,
2018-08-20 07:59:16 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "3788:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1185 ,
2018-08-20 07:59:16 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1184 ,
2018-08-20 07:59:16 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "3796:16:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "3788:25:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "3772:41:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1187 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3772:41:5"
2018-05-31 13:01:02 +00:00
} ,
{
2018-08-20 07:59:16 +00:00
"body" : {
2018-09-26 09:19:53 +00:00
"id" : 1206 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Block" ,
2018-09-26 09:19:53 +00:00
"src" : "3864:139:5" ,
2018-08-20 07:59:16 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1195 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1191 ,
2018-08-20 07:59:16 +00:00
"name" : "array" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1171 ,
"src" : "3878:5:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1193 ,
2018-08-20 07:59:16 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1192 ,
2018-08-20 07:59:16 +00:00
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1145 ,
"src" : "3884:11:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "3878:18:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1194 ,
2018-08-20 07:59:16 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3899:13:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "3878:34:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1196 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3878:34:5"
2018-08-20 07:59:16 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1201 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1197 ,
2018-08-20 07:59:16 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3926:13:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1198 ,
2018-08-20 07:59:16 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "3942:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1200 ,
2018-08-20 07:59:16 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1199 ,
2018-08-20 07:59:16 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3950:13:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "3942:22:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "3926:38:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1202 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3926:38:5"
2018-08-20 07:59:16 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1204 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-09-26 09:19:53 +00:00
"src" : "3978:14:5" ,
2018-08-20 07:59:16 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1203 ,
2018-08-20 07:59:16 +00:00
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1145 ,
"src" : "3978:11:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1205 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3978:14:5"
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"id" : 1190 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1188 ,
2018-08-20 07:59:16 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3829:13:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1189 ,
2018-08-20 07:59:16 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "3846:16:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "3829:33:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
} ,
2018-09-26 09:19:53 +00:00
"id" : 1207 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "WhileStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3823:180:5"
2018-08-20 07:59:16 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1208 ,
2018-08-20 07:59:16 +00:00
"name" : "array" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1171 ,
"src" : "4019:5:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-09-26 09:19:53 +00:00
"functionReturnParameters" : 1143 ,
"id" : 1209 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Return" ,
2018-09-26 09:19:53 +00:00
"src" : "4012:12:5"
2018-05-31 13:01:02 +00:00
}
]
} ,
2018-08-20 07:59:16 +00:00
"documentation" : "@dev Returns array of modules.\n @return Array of modules." ,
2018-09-26 09:19:53 +00:00
"id" : 1211 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
2018-08-20 07:59:16 +00:00
"isDeclaredConst" : true ,
2018-05-31 13:01:02 +00:00
"modifiers" : [ ] ,
2018-08-20 07:59:16 +00:00
"name" : "getModules" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1139 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-09-26 09:19:53 +00:00
"src" : "3312:2:5"
2018-08-20 07:59:16 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1143 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1142 ,
2018-08-20 07:59:16 +00:00
"name" : "" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1211 ,
"src" : "3360:9:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"baseType" : {
2018-09-26 09:19:53 +00:00
"id" : 1140 ,
2018-08-20 07:59:16 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3360:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1141 ,
2018-08-20 07:59:16 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3360:9:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"src" : "3359:11:5"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"scope" : 1212 ,
"src" : "3293:738:5" ,
2018-08-20 07:59:16 +00:00
"stateMutability" : "view" ,
2018-05-31 13:01:02 +00:00
"superFunction" : null ,
2018-08-20 07:59:16 +00:00
"visibility" : "public"
}
] ,
2018-09-26 09:19:53 +00:00
"scope" : 1213 ,
"src" : "348:3685:5"
2018-08-20 07:59:16 +00:00
}
] ,
2018-09-26 09:19:53 +00:00
"src" : "0:4034:5"
2018-08-20 07:59:16 +00:00
} ,
"legacyAST" : {
2018-09-26 09:19:53 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol" ,
2018-08-20 07:59:16 +00:00
"exportedSymbols" : {
"ModuleManager" : [
2018-09-26 09:19:53 +00:00
1212
2018-08-20 07:59:16 +00:00
]
} ,
2018-09-26 09:19:53 +00:00
"id" : 1213 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "SourceUnit" ,
"nodes" : [
{
2018-09-26 09:19:53 +00:00
"id" : 937 ,
2018-08-20 07:59:16 +00:00
"literals" : [
"solidity" ,
"0.4" ,
".24"
] ,
"nodeType" : "PragmaDirective" ,
2018-09-26 09:19:53 +00:00
"src" : "0:23:5"
2018-08-20 07:59:16 +00:00
} ,
{
2018-09-26 09:19:53 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol" ,
"file" : "../common/Enum.sol" ,
"id" : 938 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ImportDirective" ,
2018-09-26 09:19:53 +00:00
"scope" : 1213 ,
"sourceUnit" : 1660 ,
"src" : "24:28:5" ,
2018-08-20 07:59:16 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
2018-09-26 09:19:53 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol" ,
"file" : "../common/SelfAuthorized.sol" ,
"id" : 939 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ImportDirective" ,
2018-09-26 09:19:53 +00:00
"scope" : 1213 ,
"sourceUnit" : 1736 ,
"src" : "53:38:5" ,
2018-08-20 07:59:16 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
2018-09-26 09:19:53 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol" ,
"file" : "./Executor.sol" ,
"id" : 940 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ImportDirective" ,
2018-09-26 09:19:53 +00:00
"scope" : 1213 ,
"sourceUnit" : 893 ,
"src" : "92:24:5" ,
2018-08-20 07:59:16 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
2018-09-26 09:19:53 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol" ,
"file" : "./Module.sol" ,
"id" : 941 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ImportDirective" ,
2018-09-26 09:19:53 +00:00
"scope" : 1213 ,
"sourceUnit" : 936 ,
"src" : "117:22:5" ,
2018-08-20 07:59:16 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
2018-09-26 09:19:53 +00:00
"id" : 942 ,
2018-08-20 07:59:16 +00:00
"name" : "SelfAuthorized" ,
"nodeType" : "UserDefinedTypeName" ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1735 ,
"src" : "374:14:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_SelfAuthorized_$1735" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract SelfAuthorized"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 943 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "InheritanceSpecifier" ,
2018-09-26 09:19:53 +00:00
"src" : "374:14:5"
2018-05-31 13:01:02 +00:00
} ,
{
2018-08-20 07:59:16 +00:00
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
2018-09-26 09:19:53 +00:00
"id" : 944 ,
2018-08-20 07:59:16 +00:00
"name" : "Executor" ,
"nodeType" : "UserDefinedTypeName" ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 892 ,
"src" : "390:8:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Executor_$892" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Executor"
}
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"id" : 945 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "InheritanceSpecifier" ,
2018-09-26 09:19:53 +00:00
"src" : "390:8:5"
2018-08-20 07:59:16 +00:00
}
] ,
"contractDependencies" : [
2018-09-26 09:19:53 +00:00
892 ,
1666 ,
1735
2018-08-20 07:59:16 +00:00
] ,
"contractKind" : "contract" ,
"documentation" : "@title Module Manager - A contract that manages modules that can execute transactions via this contract\n @author Stefan George - <stefan@gnosis.pm>\n @author Richard Meissner - <richard@gnosis.pm>" ,
"fullyImplemented" : true ,
2018-09-26 09:19:53 +00:00
"id" : 1212 ,
2018-08-20 07:59:16 +00:00
"linearizedBaseContracts" : [
2018-09-26 09:19:53 +00:00
1212 ,
892 ,
1666 ,
1735
2018-08-20 07:59:16 +00:00
] ,
"name" : "ModuleManager" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
2018-09-26 09:19:53 +00:00
"anonymous" : false ,
"documentation" : null ,
"id" : 949 ,
"name" : "EnabledModule" ,
"nodeType" : "EventDefinition" ,
"parameters" : {
"id" : 948 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 947 ,
"indexed" : false ,
"name" : "module" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 949 ,
"src" : "426:13:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 946 ,
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 935 ,
"src" : "426:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "425:15:5"
2018-08-20 07:59:16 +00:00
} ,
2018-09-26 09:19:53 +00:00
"src" : "406:35:5"
2018-05-31 13:01:02 +00:00
} ,
{
2018-09-26 09:19:53 +00:00
"anonymous" : false ,
"documentation" : null ,
"id" : 953 ,
"name" : "DisabledModule" ,
"nodeType" : "EventDefinition" ,
"parameters" : {
"id" : 952 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 951 ,
"indexed" : false ,
"name" : "module" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 953 ,
"src" : "467:13:5" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 950 ,
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 935 ,
"src" : "467:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "466:15:5"
2018-08-20 07:59:16 +00:00
} ,
2018-09-26 09:19:53 +00:00
"src" : "446:36:5"
2018-08-20 07:59:16 +00:00
} ,
{
"constant" : true ,
2018-09-26 09:19:53 +00:00
"id" : 958 ,
2018-08-20 07:59:16 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1212 ,
"src" : "488:55:5" ,
2018-08-20 07:59:16 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 954 ,
2018-08-20 07:59:16 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "488:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : {
"argumentTypes" : null ,
"arguments" : [
2018-05-31 13:01:02 +00:00
{
2018-08-20 07:59:16 +00:00
"argumentTypes" : null ,
"hexValue" : "307831" ,
2018-09-26 09:19:53 +00:00
"id" : 956 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "539:3:5" ,
2018-08-20 07:59:16 +00:00
"subdenomination" : null ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"value" : "0x1"
2018-05-31 13:01:02 +00:00
}
] ,
2018-08-20 07:59:16 +00:00
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 955 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-09-26 09:19:53 +00:00
"src" : "531:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 957 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "531:12:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"visibility" : "public"
2018-05-31 13:01:02 +00:00
} ,
{
2018-08-20 07:59:16 +00:00
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 962 ,
2018-08-20 07:59:16 +00:00
"name" : "modules" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1212 ,
"src" : "550:45:5" ,
2018-08-20 07:59:16 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 961 ,
2018-08-20 07:59:16 +00:00
"keyType" : {
2018-09-26 09:19:53 +00:00
"id" : 959 ,
2018-08-20 07:59:16 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "559:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
2018-09-26 09:19:53 +00:00
"src" : "550:28:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
} ,
"valueType" : {
2018-09-26 09:19:53 +00:00
"id" : 960 ,
2018-08-20 07:59:16 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "570:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"body" : {
2018-09-26 09:19:53 +00:00
"id" : 998 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Block" ,
2018-09-26 09:19:53 +00:00
"src" : "673:342:5" ,
2018-08-20 07:59:16 +00:00
"statements" : [
2018-05-31 13:01:02 +00:00
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 974 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 970 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "691:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 972 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 971 ,
2018-08-20 07:59:16 +00:00
"name" : "SENTINEL_MODULES" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "699:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "691:25:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 973 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "720:1:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-09-26 09:19:53 +00:00
"src" : "691:30:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"hexValue" : "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564" ,
2018-09-26 09:19:53 +00:00
"id" : 975 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "723:39:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77" ,
"typeString" : "literal_string \"Modules have already been initialized\""
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"value" : "Modules have already been initialized"
2018-05-31 13:01:02 +00:00
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77" ,
"typeString" : "literal_string \"Modules have already been initialized\""
2018-05-31 13:01:02 +00:00
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 969 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-09-26 09:19:53 +00:00
4494 ,
4495
2018-05-31 13:01:02 +00:00
] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4495 ,
"src" : "683:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 976 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "683:80:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 977 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "683:80:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 982 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 978 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "773:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 980 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 979 ,
2018-08-20 07:59:16 +00:00
"name" : "SENTINEL_MODULES" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "781:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "773:25:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 981 ,
2018-08-20 07:59:16 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "801:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "773:44:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 983 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "773:44:5"
2018-05-31 13:01:02 +00:00
} ,
{
2018-08-20 07:59:16 +00:00
"condition" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 986 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"leftExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 984 ,
2018-08-20 07:59:16 +00:00
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 964 ,
"src" : "831:2:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 985 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "837:1:5" ,
2018-08-20 07:59:16 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-09-26 09:19:53 +00:00
"src" : "831:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
2018-09-26 09:19:53 +00:00
"id" : 997 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "IfStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "827:181:5" ,
2018-08-20 07:59:16 +00:00
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 989 ,
2018-08-20 07:59:16 +00:00
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 964 ,
"src" : "952:2:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 990 ,
2018-08-20 07:59:16 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 966 ,
"src" : "956:4:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2018-09-26 09:19:53 +00:00
"id" : 991 ,
2018-08-20 07:59:16 +00:00
"name" : "gasleft" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4484 ,
"src" : "962:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_gasleft_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 992 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "962:9:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 988 ,
2018-08-20 07:59:16 +00:00
"name" : "executeDelegateCall" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 882 ,
"src" : "932:19:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$" ,
"typeString" : "function (address,bytes memory,uint256) returns (bool)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 993 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "932:40:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e" ,
2018-09-26 09:19:53 +00:00
"id" : 994 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "974:33:5" ,
2018-08-20 07:59:16 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa" ,
"typeString" : "literal_string \"Could not finish initialization\""
} ,
"value" : "Could not finish initialization"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa" ,
"typeString" : "literal_string \"Could not finish initialization\""
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 987 ,
2018-08-20 07:59:16 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-09-26 09:19:53 +00:00
4494 ,
4495
2018-08-20 07:59:16 +00:00
] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4495 ,
"src" : "924:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 995 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "924:84:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 996 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "924:84:5"
2018-08-20 07:59:16 +00:00
}
2018-05-31 13:01:02 +00:00
}
]
} ,
2018-08-20 07:59:16 +00:00
"documentation" : null ,
2018-09-26 09:19:53 +00:00
"id" : 999 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
2018-08-20 07:59:16 +00:00
"modifiers" : [ ] ,
"name" : "setupModules" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-09-26 09:19:53 +00:00
"id" : 967 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 964 ,
2018-08-20 07:59:16 +00:00
"name" : "to" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 999 ,
"src" : "628:10:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 963 ,
2018-08-20 07:59:16 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "628:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 966 ,
2018-08-20 07:59:16 +00:00
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 999 ,
"src" : "640:10:5" ,
2018-08-20 07:59:16 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 965 ,
2018-08-20 07:59:16 +00:00
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "640:5:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"src" : "627:24:5"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-09-26 09:19:53 +00:00
"id" : 968 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-09-26 09:19:53 +00:00
"src" : "673:0:5"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"scope" : 1212 ,
"src" : "606:409:5" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
2018-08-20 07:59:16 +00:00
"visibility" : "internal"
2018-05-31 13:01:02 +00:00
} ,
{
"body" : {
2018-09-26 09:19:53 +00:00
"id" : 1048 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-09-26 09:19:53 +00:00
"src" : "1257:420:5" ,
2018-05-31 13:01:02 +00:00
"statements" : [
2018-06-20 08:09:14 +00:00
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1017 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1011 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1008 ,
2018-06-20 08:09:14 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1001 ,
"src" : "1337:6:5" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-06-20 08:09:14 +00:00
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-06-20 08:09:14 +00:00
"typeString" : "contract Module"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1007 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-09-26 09:19:53 +00:00
"src" : "1329:7:5" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1009 ,
2018-06-20 08:09:14 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "1329:15:5" ,
2018-06-20 08:09:14 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 1010 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "1348:1:5" ,
2018-08-20 07:59:16 +00:00
"subdenomination" : null ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"src" : "1329:20:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-31 13:01:02 +00:00
}
} ,
"nodeType" : "BinaryOperation" ,
2018-08-20 07:59:16 +00:00
"operator" : "&&" ,
2018-05-31 13:01:02 +00:00
"rightExpression" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1016 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
2018-05-31 13:01:02 +00:00
{
2018-08-20 07:59:16 +00:00
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1013 ,
2018-08-20 07:59:16 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1001 ,
"src" : "1361:6:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
}
2018-05-31 13:01:02 +00:00
}
] ,
2018-08-20 07:59:16 +00:00
"expression" : {
"argumentTypes" : [
{
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1012 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-09-26 09:19:53 +00:00
"src" : "1353:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1014 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-08-20 07:59:16 +00:00
"isPure" : false ,
"kind" : "typeConversion" ,
2018-05-31 13:01:02 +00:00
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "1353:15:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1015 ,
2018-08-20 07:59:16 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "1372:16:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "1353:35:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "1329:59:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"hexValue" : "496e76616c6964206d6f64756c6520616464726573732070726f7669646564" ,
2018-09-26 09:19:53 +00:00
"id" : 1018 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "1390:33:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
} ,
"value" : "Invalid module address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
] ,
2018-09-26 09:19:53 +00:00
"id" : 1006 ,
2018-08-20 07:59:16 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-09-26 09:19:53 +00:00
4494 ,
4495
2018-08-20 07:59:16 +00:00
] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4495 ,
"src" : "1321:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1019 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "1321:103:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1020 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "1321:103:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1026 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1022 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "1483:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1024 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1023 ,
2018-08-20 07:59:16 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1001 ,
"src" : "1491:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "1483:15:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
2018-08-20 07:59:16 +00:00
"operator" : "==" ,
2018-05-31 13:01:02 +00:00
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 1025 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "1502:1:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-09-26 09:19:53 +00:00
"src" : "1483:20:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"hexValue" : "4d6f64756c652068617320616c7265616479206265656e206164646564" ,
2018-09-26 09:19:53 +00:00
"id" : 1027 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "1505:31:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450" ,
"typeString" : "literal_string \"Module has already been added\""
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"value" : "Module has already been added"
2018-05-31 13:01:02 +00:00
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450" ,
"typeString" : "literal_string \"Module has already been added\""
2018-05-31 13:01:02 +00:00
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1021 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-09-26 09:19:53 +00:00
4494 ,
4495
2018-05-31 13:01:02 +00:00
] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4495 ,
"src" : "1475:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1028 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "1475:62:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1029 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "1475:62:5"
2018-08-20 07:59:16 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1036 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1030 ,
2018-08-20 07:59:16 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "1547:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1032 ,
2018-08-20 07:59:16 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1031 ,
2018-08-20 07:59:16 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1001 ,
"src" : "1555:6:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "1547:15:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1033 ,
2018-08-20 07:59:16 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "1565:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1035 ,
2018-08-20 07:59:16 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1034 ,
2018-08-20 07:59:16 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "1573:16:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "1565:25:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "1547:43:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1037 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "1547:43:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1042 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1038 ,
2018-08-20 07:59:16 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "1600:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
} ,
2018-09-26 09:19:53 +00:00
"id" : 1040 ,
2018-08-20 07:59:16 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1039 ,
2018-08-20 07:59:16 +00:00
"name" : "SENTINEL_MODULES" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "1608:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
"isConstant" : false ,
2018-08-20 07:59:16 +00:00
"isLValue" : true ,
2018-05-31 13:01:02 +00:00
"isPure" : false ,
2018-08-20 07:59:16 +00:00
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "1600:25:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1041 ,
2018-08-20 07:59:16 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1001 ,
"src" : "1628:6:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "1600:34:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1043 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "1600:34:5"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1045 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1001 ,
"src" : "1663:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
}
] ,
"id" : 1044 ,
"name" : "EnabledModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 949 ,
"src" : "1649:13:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$" ,
"typeString" : "function (contract Module)"
}
} ,
"id" : 1046 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1649:21:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1047 ,
"nodeType" : "EmitStatement" ,
"src" : "1644:26:5"
2018-05-31 13:01:02 +00:00
}
]
} ,
2018-08-20 07:59:16 +00:00
"documentation" : "@dev Allows to add a module to the whitelist.\n This can only be done via a Safe transaction.\n @param module Module to be whitelisted." ,
2018-09-26 09:19:53 +00:00
"id" : 1049 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
2018-08-20 07:59:16 +00:00
"modifiers" : [
{
"arguments" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1004 ,
2018-08-20 07:59:16 +00:00
"modifierName" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1003 ,
2018-08-20 07:59:16 +00:00
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1734 ,
"src" : "1242:10:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ModifierInvocation" ,
2018-09-26 09:19:53 +00:00
"src" : "1242:10:5"
2018-08-20 07:59:16 +00:00
}
] ,
"name" : "enableModule" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1002 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1001 ,
2018-08-20 07:59:16 +00:00
"name" : "module" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1049 ,
"src" : "1204:13:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"contractScope" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1000 ,
2018-08-20 07:59:16 +00:00
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 935 ,
"src" : "1204:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"src" : "1203:15:5"
2018-08-20 07:59:16 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1005 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-09-26 09:19:53 +00:00
"src" : "1257:0:5"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"scope" : 1212 ,
"src" : "1182:495:5" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-09-26 09:19:53 +00:00
"id" : 1102 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-09-26 09:19:53 +00:00
"src" : "2033:416:5" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
2018-08-20 07:59:16 +00:00
"expression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"arguments" : [
{
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"id" : 1069 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"leftExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"id" : 1063 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"leftExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1060 ,
2018-08-20 07:59:16 +00:00
"name" : "module" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1053 ,
"src" : "2141:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1059 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-09-26 09:19:53 +00:00
"src" : "2133:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"id" : 1061 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
2018-08-20 07:59:16 +00:00
"kind" : "typeConversion" ,
2018-05-31 13:01:02 +00:00
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "2133:15:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 1062 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-08-20 07:59:16 +00:00
"isPure" : true ,
"kind" : "number" ,
2018-05-31 13:01:02 +00:00
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "2152:1:5" ,
2018-08-20 07:59:16 +00:00
"subdenomination" : null ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"src" : "2133:20:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
2018-05-31 13:01:02 +00:00
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1068 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1065 ,
2018-08-20 07:59:16 +00:00
"name" : "module" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1053 ,
"src" : "2165:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1064 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-09-26 09:19:53 +00:00
"src" : "2157:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"id" : 1066 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
2018-08-20 07:59:16 +00:00
"kind" : "typeConversion" ,
2018-05-31 13:01:02 +00:00
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "2157:15:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1067 ,
2018-08-20 07:59:16 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "2176:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "2157:35:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "2133:59:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c6964206d6f64756c6520616464726573732070726f7669646564" ,
2018-09-26 09:19:53 +00:00
"id" : 1070 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "2194:33:5" ,
2018-08-20 07:59:16 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
} ,
"value" : "Invalid module address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00" ,
"typeString" : "literal_string \"Invalid module address provided\""
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
] ,
2018-09-26 09:19:53 +00:00
"id" : 1058 ,
2018-08-20 07:59:16 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-09-26 09:19:53 +00:00
4494 ,
4495
2018-08-20 07:59:16 +00:00
] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4495 ,
"src" : "2125:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"id" : 1071 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "2125:103:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1072 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "2125:103:5"
2018-08-20 07:59:16 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1080 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-08-20 07:59:16 +00:00
"leftExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1074 ,
2018-08-20 07:59:16 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "2246:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1076 ,
2018-08-20 07:59:16 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1075 ,
2018-08-20 07:59:16 +00:00
"name" : "prevModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1051 ,
"src" : "2254:10:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "2246:19:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1078 ,
2018-08-20 07:59:16 +00:00
"name" : "module" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1053 ,
"src" : "2277:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1077 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-09-26 09:19:53 +00:00
"src" : "2269:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"id" : 1079 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
2018-08-20 07:59:16 +00:00
"kind" : "typeConversion" ,
2018-05-31 13:01:02 +00:00
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "2269:15:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "2246:38:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564" ,
2018-09-26 09:19:53 +00:00
"id" : 1081 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "2286:42:5" ,
2018-08-20 07:59:16 +00:00
"subdenomination" : null ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e" ,
"typeString" : "literal_string \"Invalid prevModule, module pair provided\""
} ,
"value" : "Invalid prevModule, module pair provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-05-31 13:01:02 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-08-20 07:59:16 +00:00
} ,
{
"typeIdentifier" : "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e" ,
"typeString" : "literal_string \"Invalid prevModule, module pair provided\""
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1073 ,
2018-08-20 07:59:16 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-09-26 09:19:53 +00:00
4494 ,
4495
2018-08-20 07:59:16 +00:00
] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4495 ,
"src" : "2238:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1082 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "2238:91:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1083 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "2238:91:5"
2018-08-20 07:59:16 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1090 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1084 ,
2018-08-20 07:59:16 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "2339:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1086 ,
2018-08-20 07:59:16 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1085 ,
2018-08-20 07:59:16 +00:00
"name" : "prevModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1051 ,
"src" : "2347:10:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "2339:19:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1087 ,
2018-08-20 07:59:16 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "2361:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1089 ,
2018-08-20 07:59:16 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1088 ,
2018-08-20 07:59:16 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1053 ,
"src" : "2369:6:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "2361:15:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "2339:37:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1091 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "2339:37:5"
2018-08-20 07:59:16 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1096 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-08-20 07:59:16 +00:00
"baseExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1092 ,
2018-08-20 07:59:16 +00:00
"name" : "modules" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "2386:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1094 ,
2018-08-20 07:59:16 +00:00
"indexExpression" : {
2018-05-31 13:01:02 +00:00
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1093 ,
2018-08-20 07:59:16 +00:00
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1053 ,
"src" : "2394:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "2386:15:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-08-20 07:59:16 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 1095 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "2404:1:5" ,
2018-08-20 07:59:16 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-09-26 09:19:53 +00:00
"src" : "2386:19:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1097 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "2386:19:5"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1099 ,
"name" : "module" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1053 ,
"src" : "2435:6:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_Module_$935" ,
"typeString" : "contract Module"
}
] ,
"id" : 1098 ,
"name" : "DisabledModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 953 ,
"src" : "2420:14:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$" ,
"typeString" : "function (contract Module)"
}
} ,
"id" : 1100 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2420:22:5" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1101 ,
"nodeType" : "EmitStatement" ,
"src" : "2415:27:5"
2018-05-31 13:01:02 +00:00
}
]
} ,
2018-08-20 07:59:16 +00:00
"documentation" : "@dev Allows to remove a module from the whitelist.\n This can only be done via a Safe transaction.\n @param prevModule Module that pointed to the module to be removed in the linked list\n @param module Module to be removed." ,
2018-09-26 09:19:53 +00:00
"id" : 1103 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
2018-08-20 07:59:16 +00:00
"modifiers" : [
{
"arguments" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1056 ,
2018-08-20 07:59:16 +00:00
"modifierName" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1055 ,
2018-08-20 07:59:16 +00:00
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1734 ,
"src" : "2018:10:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
2018-09-26 09:19:53 +00:00
"src" : "2018:10:5"
2018-08-20 07:59:16 +00:00
}
] ,
"name" : "disableModule" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1054 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1051 ,
2018-08-20 07:59:16 +00:00
"name" : "prevModule" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1103 ,
"src" : "1961:17:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
"contractScope" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1050 ,
2018-08-20 07:59:16 +00:00
"name" : "Module" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "UserDefinedTypeName" ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 935 ,
"src" : "1961:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1053 ,
2018-08-20 07:59:16 +00:00
"name" : "module" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1103 ,
"src" : "1980:13:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"contractScope" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1052 ,
2018-08-20 07:59:16 +00:00
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 935 ,
"src" : "1980:6:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_contract$_Module_$935" ,
2018-08-20 07:59:16 +00:00
"typeString" : "contract Module"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"src" : "1960:34:5"
2018-08-20 07:59:16 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1057 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-09-26 09:19:53 +00:00
"src" : "2033:0:5"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"scope" : 1212 ,
"src" : "1938:511:5" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
2018-08-20 07:59:16 +00:00
"visibility" : "public"
2018-05-31 13:01:02 +00:00
} ,
{
"body" : {
2018-09-26 09:19:53 +00:00
"id" : 1137 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-09-26 09:19:53 +00:00
"src" : "2935:279:5" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
2018-08-20 07:59:16 +00:00
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1122 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1117 ,
2018-08-20 07:59:16 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "3002:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1120 ,
2018-08-20 07:59:16 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1118 ,
2018-08-20 07:59:16 +00:00
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4491 ,
"src" : "3010:3:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1119 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-09-26 09:19:53 +00:00
"src" : "3010:10:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "3002:19:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 1121 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "3025:1:5" ,
2018-08-20 07:59:16 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-09-26 09:19:53 +00:00
"src" : "3002:24:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65" ,
2018-09-26 09:19:53 +00:00
"id" : 1123 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "3028:50:5" ,
2018-08-20 07:59:16 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4" ,
"typeString" : "literal_string \"Method can only be called from an enabled module\""
} ,
"value" : "Method can only be called from an enabled module"
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4" ,
"typeString" : "literal_string \"Method can only be called from an enabled module\""
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1116 ,
2018-08-20 07:59:16 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-09-26 09:19:53 +00:00
4494 ,
4495
2018-08-20 07:59:16 +00:00
] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4495 ,
"src" : "2994:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1124 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "2994:85:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1125 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "2994:85:5"
2018-08-20 07:59:16 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1135 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1126 ,
2018-08-20 07:59:16 +00:00
"name" : "success" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1114 ,
"src" : "3151:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-31 13:01:02 +00:00
}
} ,
2018-08-20 07:59:16 +00:00
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1128 ,
2018-08-20 07:59:16 +00:00
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1105 ,
"src" : "3169:2:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1129 ,
2018-08-20 07:59:16 +00:00
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1107 ,
"src" : "3173:5:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1130 ,
2018-08-20 07:59:16 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1109 ,
"src" : "3180:4:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1131 ,
2018-08-20 07:59:16 +00:00
"name" : "operation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1111 ,
"src" : "3186:9:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_enum$_Operation_$1658" ,
2018-08-20 07:59:16 +00:00
"typeString" : "enum Enum.Operation"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2018-09-26 09:19:53 +00:00
"id" : 1132 ,
2018-08-20 07:59:16 +00:00
"name" : "gasleft" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 4484 ,
"src" : "3197:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_gasleft_view$__$returns$_t_uint256_$" ,
"typeString" : "function () view returns (uint256)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1133 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "3197:9:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
{
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_enum$_Operation_$1658" ,
2018-08-20 07:59:16 +00:00
"typeString" : "enum Enum.Operation"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1127 ,
2018-08-20 07:59:16 +00:00
"name" : "execute" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 854 ,
"src" : "3161:7:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$" ,
2018-08-20 07:59:16 +00:00
"typeString" : "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1134 ,
2018-08-20 07:59:16 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "3161:46:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-31 13:01:02 +00:00
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "3151:56:5" ,
2018-08-20 07:59:16 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-31 13:01:02 +00:00
}
2018-08-20 07:59:16 +00:00
} ,
2018-09-26 09:19:53 +00:00
"id" : 1136 ,
2018-08-20 07:59:16 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3151:56:5"
2018-05-31 13:01:02 +00:00
}
]
} ,
2018-08-20 07:59:16 +00:00
"documentation" : "@dev Allows a Module to execute a Safe transaction without any further confirmations.\n @param to Destination address of module transaction.\n @param value Ether value of module transaction.\n @param data Data payload of module transaction.\n @param operation Operation type of module transaction." ,
2018-09-26 09:19:53 +00:00
"id" : 1138 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
2018-08-20 07:59:16 +00:00
"name" : "execTransactionFromModule" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1112 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1105 ,
2018-05-31 13:01:02 +00:00
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1138 ,
"src" : "2820:10:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 1104 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "2820:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1107 ,
2018-05-31 13:01:02 +00:00
"name" : "value" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1138 ,
"src" : "2832:13:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 1106 ,
2018-05-31 13:01:02 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "2832:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1109 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1138 ,
"src" : "2847:10:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 1108 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "2847:5:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1111 ,
2018-08-20 07:59:16 +00:00
"name" : "operation" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1138 ,
"src" : "2859:24:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_enum$_Operation_$1658" ,
2018-08-20 07:59:16 +00:00
"typeString" : "enum Enum.Operation"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
2018-08-20 07:59:16 +00:00
"contractScope" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1110 ,
2018-08-20 07:59:16 +00:00
"name" : "Enum.Operation" ,
"nodeType" : "UserDefinedTypeName" ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1658 ,
"src" : "2859:14:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-09-26 09:19:53 +00:00
"typeIdentifier" : "t_enum$_Operation_$1658" ,
2018-08-20 07:59:16 +00:00
"typeString" : "enum Enum.Operation"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"src" : "2819:65:5"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1115 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1114 ,
2018-05-31 13:01:02 +00:00
"name" : "success" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1138 ,
"src" : "2917:12:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 1113 ,
2018-05-31 13:01:02 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "2917:4:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"src" : "2916:14:5"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"scope" : 1212 ,
"src" : "2785:429:5" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
2018-08-20 07:59:16 +00:00
"visibility" : "public"
2018-05-31 13:01:02 +00:00
} ,
{
"body" : {
2018-09-26 09:19:53 +00:00
"id" : 1210 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-09-26 09:19:53 +00:00
"src" : "3375:656:5" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"assignments" : [
2018-09-26 09:19:53 +00:00
1145
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1145 ,
2018-05-31 13:01:02 +00:00
"name" : "moduleCount" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1211 ,
"src" : "3419:19:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 1144 ,
2018-05-31 13:01:02 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3419:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1147 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 1146 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "3441:1:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3419:23:5"
2018-05-31 13:01:02 +00:00
} ,
{
"assignments" : [
2018-09-26 09:19:53 +00:00
1149
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1149 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1211 ,
"src" : "3452:21:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-09-26 09:19:53 +00:00
"id" : 1148 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3452:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1153 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1150 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "3476:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1152 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1151 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "3484:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "3476:25:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3452:49:5"
2018-05-31 13:01:02 +00:00
} ,
{
"body" : {
2018-09-26 09:19:53 +00:00
"id" : 1166 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-09-26 09:19:53 +00:00
"src" : "3552:91:5" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1161 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1157 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3566:13:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1158 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "3582:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1160 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1159 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3590:13:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "3582:22:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "3566:38:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1162 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3566:38:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1164 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-09-26 09:19:53 +00:00
"src" : "3618:14:5" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1163 ,
2018-05-31 13:01:02 +00:00
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1145 ,
"src" : "3618:11:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1165 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3618:14:5"
2018-05-31 13:01:02 +00:00
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1156 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1154 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3517:13:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1155 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "3534:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "3517:33:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1167 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "WhileStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3511:132:5"
2018-05-31 13:01:02 +00:00
} ,
{
"assignments" : [
2018-09-26 09:19:53 +00:00
1171
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1171 ,
2018-05-31 13:01:02 +00:00
"name" : "array" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1211 ,
"src" : "3652:22:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "memory" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
2018-09-26 09:19:53 +00:00
"id" : 1169 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3652:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1170 ,
2018-05-31 13:01:02 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3652:9:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1177 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1175 ,
2018-05-31 13:01:02 +00:00
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1145 ,
"src" : "3691:11:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2018-09-26 09:19:53 +00:00
"id" : 1174 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "NewExpression" ,
2018-09-26 09:19:53 +00:00
"src" : "3677:13:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$" ,
"typeString" : "function (uint256) pure returns (address[] memory)"
} ,
"typeName" : {
"baseType" : {
2018-09-26 09:19:53 +00:00
"id" : 1172 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3681:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1173 ,
2018-05-31 13:01:02 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3681:9:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1176 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-09-26 09:19:53 +00:00
"src" : "3677:26:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory" ,
"typeString" : "address[] memory"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3652:51:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1180 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1178 ,
2018-05-31 13:01:02 +00:00
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1145 ,
"src" : "3747:11:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-09-26 09:19:53 +00:00
"id" : 1179 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-09-26 09:19:53 +00:00
"src" : "3761:1:5" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-09-26 09:19:53 +00:00
"src" : "3747:15:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1181 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3747:15:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1186 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1182 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3772:13:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1183 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "3788:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1185 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1184 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "3796:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "3788:25:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "3772:41:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1187 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3772:41:5"
2018-05-31 13:01:02 +00:00
} ,
{
"body" : {
2018-09-26 09:19:53 +00:00
"id" : 1206 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-09-26 09:19:53 +00:00
"src" : "3864:139:5" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1195 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1191 ,
2018-05-31 13:01:02 +00:00
"name" : "array" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1171 ,
"src" : "3878:5:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1193 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1192 ,
2018-05-31 13:01:02 +00:00
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1145 ,
"src" : "3884:11:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "3878:18:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1194 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3899:13:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "3878:34:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1196 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3878:34:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1201 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1197 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3926:13:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1198 ,
2018-05-31 13:01:02 +00:00
"name" : "modules" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 962 ,
"src" : "3942:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_address_$" ,
"typeString" : "mapping(address => address)"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1200 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1199 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3950:13:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-09-26 09:19:53 +00:00
"src" : "3942:22:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "3926:38:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1202 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3926:38:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1204 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-09-26 09:19:53 +00:00
"src" : "3978:14:5" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1203 ,
2018-05-31 13:01:02 +00:00
"name" : "moduleCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1145 ,
"src" : "3978:11:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1205 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3978:14:5"
2018-05-31 13:01:02 +00:00
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-09-26 09:19:53 +00:00
"id" : 1190 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1188 ,
2018-05-31 13:01:02 +00:00
"name" : "currentModule" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1149 ,
"src" : "3829:13:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1189 ,
2018-05-31 13:01:02 +00:00
"name" : "SENTINEL_MODULES" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 958 ,
"src" : "3846:16:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"src" : "3829:33:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1207 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "WhileStatement" ,
2018-09-26 09:19:53 +00:00
"src" : "3823:180:5"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-09-26 09:19:53 +00:00
"id" : 1208 ,
2018-05-31 13:01:02 +00:00
"name" : "array" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-09-26 09:19:53 +00:00
"referencedDeclaration" : 1171 ,
"src" : "4019:5:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-09-26 09:19:53 +00:00
"functionReturnParameters" : 1143 ,
"id" : 1209 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Return" ,
2018-09-26 09:19:53 +00:00
"src" : "4012:12:5"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Returns array of modules.\n @return Array of modules." ,
2018-09-26 09:19:53 +00:00
"id" : 1211 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "getModules" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1139 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-09-26 09:19:53 +00:00
"src" : "3312:2:5"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-09-26 09:19:53 +00:00
"id" : 1143 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-09-26 09:19:53 +00:00
"id" : 1142 ,
2018-05-31 13:01:02 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2018-09-26 09:19:53 +00:00
"scope" : 1211 ,
"src" : "3360:9:5" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
2018-09-26 09:19:53 +00:00
"id" : 1140 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3360:7:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-09-26 09:19:53 +00:00
"id" : 1141 ,
2018-05-31 13:01:02 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-09-26 09:19:53 +00:00
"src" : "3360:9:5" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-09-26 09:19:53 +00:00
"src" : "3359:11:5"
2018-05-31 13:01:02 +00:00
} ,
2018-09-26 09:19:53 +00:00
"scope" : 1212 ,
"src" : "3293:738:5" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
}
] ,
2018-09-26 09:19:53 +00:00
"scope" : 1213 ,
"src" : "348:3685:5"
2018-05-31 13:01:02 +00:00
}
] ,
2018-09-26 09:19:53 +00:00
"src" : "0:4034:5"
2018-05-31 13:01:02 +00:00
} ,
"compiler" : {
"name" : "solc" ,
"version" : "0.4.24+commit.e67f0147.Emscripten.clang"
} ,
"networks" : { } ,
2018-06-29 11:23:01 +00:00
"schemaVersion" : "2.0.0" ,
2018-09-26 09:19:53 +00:00
"updatedAt" : "2018-09-26T08:32:07.636Z"
2018-05-31 13:01:02 +00:00
}