2018-05-04 14:04:04 +00:00
{
2018-05-10 11:12:13 +00:00
"contractName" : "OwnerManager" ,
2018-05-04 14:04:04 +00:00
"abi" : [
{
"constant" : true ,
"inputs" : [
{
"name" : "" ,
"type" : "uint256"
}
] ,
2018-05-10 11:12:13 +00:00
"name" : "owners" ,
2018-05-04 14:04:04 +00:00
"outputs" : [
{
"name" : "" ,
"type" : "address"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
2018-05-10 11:12:13 +00:00
"constant" : false ,
2018-05-04 14:04:04 +00:00
"inputs" : [
{
2018-05-10 11:12:13 +00:00
"name" : "owner" ,
"type" : "address"
2018-05-04 14:04:04 +00:00
} ,
{
"name" : "_threshold" ,
"type" : "uint8"
}
] ,
2018-05-10 11:12:13 +00:00
"name" : "addOwner" ,
"outputs" : [ ] ,
2018-05-04 14:04:04 +00:00
"payable" : false ,
"stateMutability" : "nonpayable" ,
2018-05-10 11:12:13 +00:00
"type" : "function"
2018-05-04 14:04:04 +00:00
} ,
{
"constant" : false ,
"inputs" : [
{
2018-05-10 11:12:13 +00:00
"name" : "ownerIndex" ,
"type" : "uint256"
} ,
{
"name" : "owner" ,
"type" : "address"
2018-05-04 14:04:04 +00:00
} ,
{
"name" : "_threshold" ,
"type" : "uint8"
}
] ,
2018-05-10 11:12:13 +00:00
"name" : "removeOwner" ,
2018-05-04 14:04:04 +00:00
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
2018-05-10 11:12:13 +00:00
"name" : "oldOwnerIndex" ,
"type" : "uint256"
} ,
{
"name" : "oldOwner" ,
"type" : "address"
} ,
{
"name" : "newOwner" ,
2018-05-04 14:04:04 +00:00
"type" : "address"
}
] ,
2018-05-10 11:12:13 +00:00
"name" : "replaceOwner" ,
2018-05-04 14:04:04 +00:00
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
2018-05-10 11:12:13 +00:00
"name" : "_threshold" ,
"type" : "uint8"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-10 11:12:13 +00:00
"name" : "changeThreshold" ,
2018-05-04 14:04:04 +00:00
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
2018-05-10 11:12:13 +00:00
"constant" : true ,
"inputs" : [ ] ,
"name" : "threshold" ,
2018-05-04 14:04:04 +00:00
"outputs" : [
{
"name" : "" ,
2018-05-10 11:12:13 +00:00
"type" : "uint8"
2018-05-04 14:04:04 +00:00
}
] ,
"payable" : false ,
2018-05-10 11:12:13 +00:00
"stateMutability" : "view" ,
2018-05-04 14:04:04 +00:00
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [
{
2018-05-10 11:12:13 +00:00
"name" : "owner" ,
"type" : "address"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-10 11:12:13 +00:00
"name" : "isOwner" ,
2018-05-04 14:04:04 +00:00
"outputs" : [
{
"name" : "" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
2018-05-10 11:12:13 +00:00
"inputs" : [ ] ,
"name" : "getOwners" ,
2018-05-04 14:04:04 +00:00
"outputs" : [
{
"name" : "" ,
2018-05-10 11:12:13 +00:00
"type" : "address[]"
2018-05-04 14:04:04 +00:00
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
}
] ,
2018-05-10 11:12:13 +00:00
"bytecode" : " 0 x 608060405234801561001057600080 f d 5 b 50610 b 4e806100206000396000 f 30060806040526004361061008e576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 168063025e7 c 27146100935780630e5229 b 0 146101005780632 f 54 b f 6e1461015057806342 c d e 4e8146101 a b 57806354e99 c 6e146101 d c 578063842 b 954e14610249578063 a 0e67 e 2 b 146102 a 3578063 b 7 f 3358 d 1461030 f 575 b 600080 f d 5 b 34801561009 f 57600080 f d 5 b 506100 b e 6004803603810190808035906020019092919050505061033 f 565 b 604051808273 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200191505060405180910390 f 35 b 34801561010 c 57600080 f d 5 b 5061014e600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803560 f f 16906020019092919050505061037 d 565 b 0 0 5 b 34801561015 c 57600080 f d 5 b 50610191600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190505050610520565 b 604051808215151515815260200191505060405180910390 f 35 b 3480156101 b 757600080 f d 5 b 506101 c 0 610576565 b 604051808260 f f 1660 f f 16815260200191505060405180910390 f 35 b 3480156101e857600080 f d 5 b 5061024760048036038101908080359060200190929190803573 f f f f f f f f f f f f f f f f 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 16906020019092919050505061058 d 565 b 0 0 5 b 34801561025557600080 f d 5 b 506102 a 160048036038101908080359060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803560 f f 1690602001909291905050506107 c 6565 b 0 0 5 b 3480156102 a f 57600080 f d 5 b 506102 b 86109 c 1565 b 6040518080602001828103825283818151815260200191508051906020019060200280838360005 b 838110156102 f b 5780820151818401526020810190506102e0565 b 505050509050019250505060405180910390 f 35 b 34801561031 b 57600080 f d 5 b 5061033 d 600480360381019080803560 f f 169060200190929190505050610 a 4 f 565 b 0 0 5 b 60008181548110151561034e57 f e 5 b 906000526020600020016000915054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1681565 b 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 161415156103 b 757600080 f d 5 b 60008273 f f f f f f f f f f f f f f f f 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 d d 57600080 f d 5 b 600260008373 f f f f f f f f f f f f f f f f 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 900460 f f 1615151561043657600080 f d 5 b 60008290806001815401808255809150509060018203906000526020600020016000909192909190916101000 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 160217905550506001600260008473 f f f f f f f f f f f f f f f f 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 81548160 f f 0 219169083151502179055508060 f f 16600160009054906101000 a 900460 f f 1660 f f 1614151561051 c 5761051 b 81610 a 4 f 565 b 5 b 5050565 b 6000600260008373 f f f f f f f f f f f f f f f f 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 900460 f f 169050919050565 b 6000600160009054906101000 a 900460 f f 16905090565 b 3073 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 163373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 161415156105 c 757600080 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 16141515156105 e d 57600080 f d 5 b 600260008273 f f f f f f f f f f f f f f f f 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 900460 f f 1615151561064657600080 f d 5 b 8173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1660008481548110151561066 c 57 f e 5 b 9060005260206000200160009054906101000 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 161415156106 b 957600080 f d 5 b 6000600260008473 f f f f f f f f f f f f f f f f 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 81548160 f f 0 219169083151502179055506001600260008373 f f f f f f f f f f f f f f f f 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 81548160 f f 0 219169083151502179055508060008481548110151561077957 f e 5 b 9060005260206000200160006101000 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 160217905550505050565 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
"deployedBytecode" : " 0 x 60806040526004361061008e576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 168063025e7 c 27146100935780630e5229 b 0 146101005780632 f 54 b f 6e1461015057806342 c d e 4e8146101 a b 57806354e99 c 6e146101 d c 578063842 b 954e14610249578063 a 0e67 e 2 b 146102 a 3578063 b 7 f 3358 d 1461030 f 575 b 600080 f d 5 b 34801561009 f 57600080 f d 5 b 506100 b e 6004803603810190808035906020019092919050505061033 f 565 b 604051808273 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200191505060405180910390 f 35 b 34801561010 c 57600080 f d 5 b 5061014e600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803560 f f 16906020019092919050505061037 d 565 b 0 0 5 b 34801561015 c 57600080 f d 5 b 50610191600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190505050610520565 b 604051808215151515815260200191505060405180910390 f 35 b 3480156101 b 757600080 f d 5 b 506101 c 0 610576565 b 604051808260 f f 1660 f f 16815260200191505060405180910390 f 35 b 3480156101e857600080 f d 5 b 5061024760048036038101908080359060200190929190803573 f f f f f f f f f f f f f f f f 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 16906020019092919050505061058 d 565 b 0 0 5 b 34801561025557600080 f d 5 b 506102 a 160048036038101908080359060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803560 f f 1690602001909291905050506107 c 6565 b 0 0 5 b 3480156102 a f 57600080 f d 5 b 506102 b 86109 c 1565 b 6040518080602001828103825283818151815260200191508051906020019060200280838360005 b 838110156102 f b 5780820151818401526020810190506102e0565 b 505050509050019250505060405180910390 f 35 b 34801561031 b 57600080 f d 5 b 5061033 d 600480360381019080803560 f f 169060200190929190505050610 a 4 f 565 b 0 0 5 b 60008181548110151561034e57 f e 5 b 906000526020600020016000915054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1681565 b 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 161415156103 b 757600080 f d 5 b 60008273 f f f f f f f f f f f f f f f f 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 d d 57600080 f d 5 b 600260008373 f f f f f f f f f f f f f f f f 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 900460 f f 1615151561043657600080 f d 5 b 60008290806001815401808255809150509060018203906000526020600020016000909192909190916101000 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 160217905550506001600260008473 f f f f f f f f f f f f f f f f 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 81548160 f f 0 219169083151502179055508060 f f 16600160009054906101000 a 900460 f f 1660 f f 1614151561051 c 5761051 b 81610 a 4 f 565 b 5 b 5050565 b 6000600260008373 f f f f f f f f f f f f f f f f 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 900460 f f 169050919050565 b 6000600160009054906101000 a 900460 f f 16905090565 b 3073 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 163373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 161415156105 c 757600080 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 16141515156105 e d 57600080 f d 5 b 600260008273 f f f f f f f f f f f f f f f f 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 900460 f f 1615151561064657600080 f d 5 b 8173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1660008481548110151561066 c 57 f e 5 b 9060005260206000200160009054906101000 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 161415156106 b 957600080 f d 5 b 6000600260008473 f f f f f f f f f f f f f f f f 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 81548160 f f 0 219169083151502179055506001600260008373 f f f f f f f f f f f f f f f f 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 81548160 f f 0 219169083151502179055508060008481548110151561077957 f e 5 b 9060005260206000200160006101000 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 160217905550505050565 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
"sourceMap" : "240:4632:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;240:4632:10;;;;;;;" ,
"deployedSourceMap" : "240:4632:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;287:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:23:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1737:431;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1737:431:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4552:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4552:125:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4436:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4436:110:10;;;;;;;;;;;;;;;;;;;;;;;;;;;3419:501;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3419:501:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2499:599;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2499:599:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4759:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4759:111:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4759:111:10;;;;;;;;;;;;;;;;;4109:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4109:321:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;287:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1737:431::-;244:4:14;222:27;;:10;:27;;;214:36;;;;;;;;1894:1:10;1885:5;:10;;;;1877:19;;;;;;;;1955:7;:14;1963:5;1955:14;;;;;;;;;;;;;;;;;;;;;;;;;1954:15;1946:24;;;;;;;;1980:6;1992:5;1980:18;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1980:18:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2025:4;2008:7;:14;2016:5;2008:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;2110:10;2097:23;;:9;;;;;;;;;;;:23;;;;2093:68;;;2134:27;2150:10;2134:15;:27::i;:::-;2093:68;1737:431;;:::o;4552:125::-;4629:4;4656:7;:14;4664:5;4656:14;;;;;;;;;;;;;;;;;;;;;;;;;4649:21;;4552:125;;;:::o;4436:110::-;4502:5;4530:9;;;;;;;;;;;4523:16;;4436:110;:::o;3419:501::-;244:4:14;222:27;;:10;:27;;;214:36;;;;;;;;3609:1:10;3597:8;:13;;;;3589:22;;;;;;;;3670:7;:17;3678:8;3670:17;;;;;;;;;;;;;;;;;;;;;;;;;3669:18;3661:27;;;;;;;;3793:8;3768:33;;:6;3775:13;3768:21;;;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;3760:42;;;;;;;;3832:5;3812:7;:17;3820:8;3812:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;3867:4;3847:7;:17;3855:8;3847:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;3905:8;3881:6;3888:13;3881:21;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;3419:501;;;:::o;2499:599::-;244:4:14;222:27;;:10;:27;;;214:36;;;;;;;;2727:10:10;2706:31;;2722:1;2706:6;:13;;;;:17;:31;;2698:40;;;;;;;;2840:5;2818:27;;:6;2825:10;2818:18;;;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;2810:36;;;;;;;;2873:5;2856:7;:14;2864:5;2856:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;2909:6;2932:1;2916:6;:13;;;;:17;2909:25;;;;;;;;;;;;;;;;;;;;;;;;;;;2888:6;2895:10;2888:18;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;2944:6;:15;;;;;;;;;;;;:::i;:::-;;3040:10;3027:23;;:9;;;;;;;;;;;:23;;;;3023:68;;;3064:27;3080:10;3064:15;:27::i;:::-;3023:68;2499:599;;;:::o;4759:111::-;4825:9;4857:6;4850:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4759:111;:::o;4109:321::-;244:4:14;222:27;;:10;:27;;;214:36;;;;;;;;4291:6:10;:13;;;;4277:10;:27;;;;4269:36;;;;;;;;4389:1;4375:10;:15;;;;4367:24;;;;;;;;4413:10;4401:9;;:22;;;;;;;;;;;;;;;;;;4109:321;:::o;240:4632::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o" ,
"source" : "pragma solidity 0.4.23;\nimport \"./SelfAuthorized.sol\" ; \ n \ n /// @title OwnerManager - Manages a set of owners and a threshold to perform actions.\n/// @author Stefan George - <stefan@gnosis.pm>\n/// @author Richard Meissner - <richard@gnosis.pm>\ncontract OwnerManager is SelfAuthorized {\n\n address[] public owners;\n uint8 public threshold;\n\n // isOwner mapping allows to check if an address is a Safe owner.\n mapping (address => bool) public isOwner;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n function setupOwners(address[] _owners, uint8 _threshold)\n internal\n {\n // Threshold can only be 0 at initialization.\n // Check ensures that setup function can only be called once.\n require(threshold == 0);\n // Validate that threshold is smaller than number of added owners.\n require(_threshold <= _owners.length);\n // There has to be at least one Safe owner.\n require(_threshold >= 1);\n // Initializing Safe owners.\n for (uint256 i = 0; i < _owners.length; i++) {\n // Owner address cannot be null.\n address owner = _owners[i];\n require(owner != 0);\n // No duplicate owners allowed.\n require(!isOwner[owner]);\n isOwner[owner] = true;\n }\n owners = _owners;\n threshold = _threshold;\n }\n\n /// @dev Allows to add a new owner to the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param owner New owner address.\n /// @param _threshold New threshold.\n function addOwner(address owner, uint8 _threshold)\n public\n authorized\n {\n // Owner address cannot be null.\n require(owner != 0);\n // No duplicate owners allowed.\n require(!isOwner[owner]);\n owners.push(owner);\n isOwner[owner] = true;\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to remove an owner from the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param ownerIndex Array index position of owner address to be removed.\n /// @param owner Owner address to be removed.\n /// @param _threshold New threshold.\n function removeOwner(uint256 ownerIndex, address owner, uint8 _threshold)\n public\n authorized\n {\n // Only allow to remove an owner, if threshold can still be reached.\n require(owners.length - 1 >= _threshold);\n // Validate owner address corresponds to owner index.\n require(owners[ownerIndex] == owner);\n isOwner[owner] = false;\n owners[ownerIndex] = owners[owners.length - 1];\n owners.length--;\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to replace an owner from the Safe with another address.\n /// This can only be done via a Safe transaction.\n /// @param oldOwnerIndex Array index position of owner address to be replaced.\n /// @param oldOwner Owner address to be replaced.\n /// @param newOwner New owner address.\n function replaceOwner(uint256 oldOwnerIndex, address oldOwner, address newOwner)\n public\n authorized\n {\n // Owner address cannot be null.\n require(newOwner != 0);\n // No duplicate owners allowed.\n require(!isOwner[newOwner]);\n // Validate owner address corresponds to owner index.\n require(owners[oldOwnerIndex] == oldOwner);\n isOwner[oldOwner] = false;\n isOwner[newOwner] = true;\n owners[oldOwnerIndex] = newOwner;\n }\n\n /// @dev Allows to update the number of required confi
"sourcePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol" ,
2018-05-04 14:04:04 +00:00
"ast" : {
2018-05-10 11:12:13 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol" ,
2018-05-04 14:04:04 +00:00
"exportedSymbols" : {
2018-05-10 11:12:13 +00:00
"OwnerManager" : [
1438
2018-05-04 14:04:04 +00:00
]
} ,
2018-05-10 11:12:13 +00:00
"id" : 1439 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "SourceUnit" ,
"nodes" : [
{
2018-05-10 11:12:13 +00:00
"id" : 1144 ,
2018-05-04 14:04:04 +00:00
"literals" : [
"solidity" ,
"0.4" ,
2018-05-10 11:12:13 +00:00
".23"
2018-05-04 14:04:04 +00:00
] ,
"nodeType" : "PragmaDirective" ,
2018-05-10 11:12:13 +00:00
"src" : "0:23:10"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol" ,
"file" : "./SelfAuthorized.sol" ,
"id" : 1145 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ImportDirective" ,
2018-05-10 11:12:13 +00:00
"scope" : 1439 ,
"sourceUnit" : 1560 ,
"src" : "24:30:10" ,
2018-05-04 14:04:04 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
2018-05-10 11:12:13 +00:00
"arguments" : null ,
2018-05-04 14:04:04 +00:00
"baseName" : {
"contractScope" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1146 ,
"name" : "SelfAuthorized" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "UserDefinedTypeName" ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1559 ,
"src" : "265:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_contract$_SelfAuthorized_$1559" ,
"typeString" : "contract SelfAuthorized"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1147 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "InheritanceSpecifier" ,
2018-05-10 11:12:13 +00:00
"src" : "265:14:10"
2018-05-04 14:04:04 +00:00
}
] ,
"contractDependencies" : [
2018-05-10 11:12:13 +00:00
1559
2018-05-04 14:04:04 +00:00
] ,
"contractKind" : "contract" ,
2018-05-10 11:12:13 +00:00
"documentation" : "@title OwnerManager - Manages a set of owners and a threshold to perform actions.\n @author Stefan George - <stefan@gnosis.pm>\n @author Richard Meissner - <richard@gnosis.pm>" ,
2018-05-04 14:04:04 +00:00
"fullyImplemented" : true ,
2018-05-10 11:12:13 +00:00
"id" : 1438 ,
2018-05-04 14:04:04 +00:00
"linearizedBaseContracts" : [
2018-05-10 11:12:13 +00:00
1438 ,
1559
2018-05-04 14:04:04 +00:00
] ,
2018-05-10 11:12:13 +00:00
"name" : "OwnerManager" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1150 ,
"name" : "owners" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1438 ,
"src" : "287:23:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[]"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"baseType" : {
"id" : 1148 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "287:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1149 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "287:9:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1152 ,
2018-05-04 14:04:04 +00:00
"name" : "threshold" ,
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1438 ,
"src" : "316:22:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1151 ,
2018-05-04 14:04:04 +00:00
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "316:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1156 ,
"name" : "isOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1438 ,
"src" : "415:40:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1155 ,
2018-05-04 14:04:04 +00:00
"keyType" : {
2018-05-10 11:12:13 +00:00
"id" : 1153 ,
2018-05-04 14:04:04 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "424:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
2018-05-10 11:12:13 +00:00
"src" : "415:25:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"valueType" : {
2018-05-10 11:12:13 +00:00
"id" : 1154 ,
2018-05-04 14:04:04 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "435:4:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-05-10 11:12:13 +00:00
"id" : 1229 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-10 11:12:13 +00:00
"src" : "730:767:10" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1167 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1165 ,
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1152
] ,
"referencedDeclaration" : 1152 ,
"src" : "872:9:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"hexValue" : "30" ,
"id" : 1166 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-05-10 11:12:13 +00:00
"isPure" : true ,
"kind" : "number" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Literal" ,
"src" : "885:1:10" ,
"subdenomination" : null ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"src" : "872:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1164 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "864:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1168 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "864:23:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1169 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "864:23:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1174 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1171 ,
"name" : "_threshold" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1161 ,
"src" : "980:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "<=" ,
"rightExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1172 ,
"name" : "_owners" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1159 ,
"src" : "994:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1173 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"memberName" : "length" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-05-10 11:12:13 +00:00
"src" : "994:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"src" : "980:28:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1170 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "972:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1175 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "972:37:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1176 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "972:37:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"commonType" : {
2018-05-04 14:04:04 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-10 11:12:13 +00:00
} ,
"id" : 1180 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1178 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1161 ,
"src" : "1079:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "31" ,
"id" : 1179 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1093:1:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
} ,
"value" : "1"
} ,
"src" : "1079:15:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1177 ,
"name" : "require" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "1071:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1181 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "1071:24:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1182 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "1071:24:10"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"body" : {
"id" : 1219 ,
"nodeType" : "Block" ,
"src" : "1187:246:10" ,
"statements" : [
2018-05-04 14:04:04 +00:00
{
2018-05-10 11:12:13 +00:00
"assignments" : [
1195
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1195 ,
"name" : "owner" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1230 ,
"src" : "1246:13:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1194 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1246:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1199 ,
"initialValue" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1196 ,
"name" : "_owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1159 ,
"src" : "1262:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1198 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1197 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1184 ,
"src" : "1270:1:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1262:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "VariableDeclarationStatement" ,
"src" : "1246:26:10"
} ,
{
"expression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1203 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1201 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1195 ,
"src" : "1294:5:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1202 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1303:1:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "1294:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1200 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "1286:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1204 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
2018-05-10 11:12:13 +00:00
"kind" : "functionCall" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "1286:19:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1205 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1286:19:10"
} ,
2018-05-04 14:04:04 +00:00
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1210 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
"src" : "1371:15:10" ,
"subExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1207 ,
"name" : "isOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
1156
] ,
"referencedDeclaration" : 1156 ,
"src" : "1372:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1209 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1208 ,
"name" : "owner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1195 ,
"src" : "1380:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-10 11:12:13 +00:00
"src" : "1372:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1206 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "1363:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1211 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "1363:24:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1212 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "1363:24:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1217 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1213 ,
"name" : "isOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
1156
] ,
"referencedDeclaration" : 1156 ,
"src" : "1401:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1215 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1214 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1195 ,
"src" : "1409:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-05-10 11:12:13 +00:00
"src" : "1401:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-05-10 11:12:13 +00:00
"id" : 1216 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-10 11:12:13 +00:00
"src" : "1418:4:10" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-05-10 11:12:13 +00:00
"src" : "1401:21:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1218 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "1401:21:10"
2018-05-04 14:04:04 +00:00
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-05-10 11:12:13 +00:00
"id" : 1190 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1187 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1184 ,
"src" : "1162:1:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1188 ,
"name" : "_owners" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1159 ,
"src" : "1166:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1189 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-05-10 11:12:13 +00:00
"src" : "1166:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-05-10 11:12:13 +00:00
"src" : "1162:18:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1220 ,
2018-05-04 14:04:04 +00:00
"initializationExpression" : {
"assignments" : [
2018-05-10 11:12:13 +00:00
1184
2018-05-04 14:04:04 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1184 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1230 ,
"src" : "1147:9:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1183 ,
2018-05-04 14:04:04 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "1147:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1186 ,
2018-05-04 14:04:04 +00:00
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-05-10 11:12:13 +00:00
"id" : 1185 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-10 11:12:13 +00:00
"src" : "1159:1:10" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "1147:13:10"
2018-05-04 14:04:04 +00:00
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1192 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-05-10 11:12:13 +00:00
"src" : "1182:3:10" ,
2018-05-04 14:04:04 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1191 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1184 ,
"src" : "1182:1:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1193 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "1182:3:10"
2018-05-04 14:04:04 +00:00
} ,
"nodeType" : "ForStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "1142:291:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1223 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1221 ,
"name" : "owners" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1150 ,
"src" : "1442:6:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1222 ,
"name" : "_owners" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1159 ,
"src" : "1451:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-05-10 11:12:13 +00:00
"src" : "1442:16:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1224 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "1442:16:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1227 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1225 ,
2018-05-04 14:04:04 +00:00
"name" : "threshold" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
1152
] ,
"referencedDeclaration" : 1152 ,
"src" : "1468:9:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1226 ,
2018-05-04 14:04:04 +00:00
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1161 ,
"src" : "1480:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
2018-05-10 11:12:13 +00:00
"src" : "1468:22:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1228 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "1468:22:10"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction." ,
"id" : 1230 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
2018-05-10 11:12:13 +00:00
"name" : "setupOwners" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1162 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1159 ,
"name" : "_owners" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1230 ,
"src" : "672:17:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "address[]"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
"baseType" : {
2018-05-10 11:12:13 +00:00
"id" : 1157 ,
2018-05-04 14:04:04 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "672:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1158 ,
2018-05-04 14:04:04 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "672:9:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "address[]"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1161 ,
2018-05-04 14:04:04 +00:00
"name" : "_threshold" ,
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1230 ,
"src" : "691:16:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1160 ,
2018-05-04 14:04:04 +00:00
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "691:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-10 11:12:13 +00:00
"src" : "671:37:10"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1163 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-05-10 11:12:13 +00:00
"src" : "730:0:10"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"scope" : 1438 ,
"src" : "651:846:10" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
2018-05-10 11:12:13 +00:00
"visibility" : "internal"
2018-05-04 14:04:04 +00:00
} ,
{
"body" : {
2018-05-10 11:12:13 +00:00
"id" : 1272 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-10 11:12:13 +00:00
"src" : "1826:342:10" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-05-10 11:12:13 +00:00
"id" : 1242 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1240 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1232 ,
"src" : "1885:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-05-10 11:12:13 +00:00
"id" : 1241 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-10 11:12:13 +00:00
"src" : "1894:1:10" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-05-10 11:12:13 +00:00
"src" : "1885:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1239 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "1877:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1243 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "1877:19:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1244 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "1877:19:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1249 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
2018-05-10 11:12:13 +00:00
"src" : "1954:15:10" ,
2018-05-04 14:04:04 +00:00
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1246 ,
"name" : "isOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
1156
] ,
"referencedDeclaration" : 1156 ,
"src" : "1955:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1248 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1247 ,
"name" : "owner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1232 ,
"src" : "1963:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-10 11:12:13 +00:00
"src" : "1955:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1245 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "1946:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1250 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "1946:24:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1251 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "1946:24:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1255 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1232 ,
"src" : "1992:5:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
] ,
"expression" : {
"argumentTypes" : null ,
"id" : 1252 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "1980:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1254 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "push" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "1980:11:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$" ,
"typeString" : "function (address) returns (uint256)"
}
} ,
"id" : 1256 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
2018-05-10 11:12:13 +00:00
"kind" : "functionCall" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1980:18:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1257 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1980:18:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1262 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1258 ,
"name" : "isOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1156
] ,
"referencedDeclaration" : 1156 ,
"src" : "2008:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1260 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1259 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1232 ,
"src" : "2016:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-05-10 11:12:13 +00:00
"src" : "2008:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-05-10 11:12:13 +00:00
"id" : 1261 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-10 11:12:13 +00:00
"src" : "2025:4:10" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-05-10 11:12:13 +00:00
"src" : "2008:21:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1263 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "2008:21:10"
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"id" : 1266 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1264 ,
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1152
] ,
"referencedDeclaration" : 1152 ,
"src" : "2097:9:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1265 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1234 ,
"src" : "2110:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"src" : "2097:23:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1271 ,
"nodeType" : "IfStatement" ,
"src" : "2093:68:10" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1268 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1234 ,
"src" : "2150:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
] ,
"id" : 1267 ,
"name" : "changeThreshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1408 ,
"src" : "2134:15:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_uint8_$returns$__$" ,
"typeString" : "function (uint8)"
}
} ,
"id" : 1269 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2134:27:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1270 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2134:27:10"
}
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Allows to add a new owner to the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param owner New owner address.\n @param _threshold New threshold." ,
"id" : 1273 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
2018-05-10 11:12:13 +00:00
"arguments" : null ,
"id" : 1237 ,
2018-05-04 14:04:04 +00:00
"modifierName" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1236 ,
"name" : "authorized" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1558 ,
"src" : "1811:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
2018-05-10 11:12:13 +00:00
"src" : "1811:10:10"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-10 11:12:13 +00:00
"name" : "addOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1235 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1232 ,
"name" : "owner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1273 ,
"src" : "1755:13:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1231 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1755:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1234 ,
"name" : "_threshold" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1273 ,
"src" : "1770:16:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1233 ,
"name" : "uint8" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "1770:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-10 11:12:13 +00:00
"src" : "1754:33:10"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1238 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-05-10 11:12:13 +00:00
"src" : "1826:0:10"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"scope" : 1438 ,
"src" : "1737:431:10" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-05-10 11:12:13 +00:00
"id" : 1331 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-10 11:12:13 +00:00
"src" : "2611:487:10" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1290 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1288 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1285 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "2706:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1286 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2706:13:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "-" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "31" ,
"id" : 1287 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2722:1:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
} ,
"value" : "1"
} ,
"src" : "2706:17:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : ">=" ,
"rightExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1289 ,
"name" : "_threshold" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1279 ,
"src" : "2727:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"src" : "2706:31:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1284 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "2698:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1291 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "2698:40:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1292 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "2698:40:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-05-10 11:12:13 +00:00
"id" : 1298 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1294 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "2818:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1296 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1295 ,
"name" : "ownerIndex" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1275 ,
"src" : "2825:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2818:18:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1297 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1277 ,
"src" : "2840:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-05-10 11:12:13 +00:00
"src" : "2818:27:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1293 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "2810:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1299 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "2810:36:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1300 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "2810:36:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1305 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1301 ,
"name" : "isOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1156
] ,
"referencedDeclaration" : 1156 ,
"src" : "2856:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1303 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1302 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1277 ,
"src" : "2864:5:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "2856:14:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
"id" : 1304 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2873:5:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
"src" : "2856:22:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1306 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2856:22:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1316 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1307 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "2888:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1309 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1308 ,
"name" : "ownerIndex" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1275 ,
"src" : "2895:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "2888:18:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1310 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "2909:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1315 ,
"indexExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-05-10 11:12:13 +00:00
"id" : 1314 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"expression" : {
"argumentTypes" : null ,
"id" : 1311 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "2916:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1312 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2916:13:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
2018-05-10 11:12:13 +00:00
"operator" : "-" ,
2018-05-04 14:04:04 +00:00
"rightExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"hexValue" : "31" ,
"id" : 1313 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-10 11:12:13 +00:00
"src" : "2932:1:10" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"value" : "1"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"src" : "2916:17:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2909:25:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"src" : "2888:46:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1317 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "2888:46:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1321 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "UnaryOperation" ,
"operator" : "--" ,
"prefix" : false ,
"src" : "2944:15:10" ,
"subExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1318 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "2944:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1320 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2944:13:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1322 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "2944:15:10"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"id" : 1325 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1323 ,
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1152
] ,
"referencedDeclaration" : 1152 ,
"src" : "3027:9:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1324 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1279 ,
"src" : "3040:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"src" : "3027:23:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1330 ,
"nodeType" : "IfStatement" ,
"src" : "3023:68:10" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1327 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1279 ,
"src" : "3080:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
] ,
"id" : 1326 ,
"name" : "changeThreshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1408 ,
"src" : "3064:15:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_function_internal_nonpayable$_t_uint8_$returns$__$" ,
"typeString" : "function (uint8)"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1328 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3064:27:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1329 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3064:27:10"
}
}
]
} ,
"documentation" : "@dev Allows to remove an owner from the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param ownerIndex Array index position of owner address to be removed.\n @param owner Owner address to be removed.\n @param _threshold New threshold." ,
"id" : 1332 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
"id" : 1282 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1281 ,
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1558 ,
"src" : "2596:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "2596:10:10"
}
] ,
"name" : "removeOwner" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1280 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1275 ,
"name" : "ownerIndex" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1332 ,
"src" : "2520:18:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1274 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2520:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
} ,
"value" : null ,
"visibility" : "internal"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"constant" : false ,
"id" : 1277 ,
"name" : "owner" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1332 ,
"src" : "2540:13:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1276 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2540:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
} ,
"value" : null ,
"visibility" : "internal"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
{
"constant" : false ,
"id" : 1279 ,
"name" : "_threshold" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1332 ,
"src" : "2555:16:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
"id" : 1278 ,
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2555:5:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2519:53:10"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1283 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "2611:0:10"
} ,
"scope" : 1438 ,
"src" : "2499:599:10" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1382 ,
"nodeType" : "Block" ,
"src" : "3538:382:10" ,
"statements" : [
2018-05-04 14:04:04 +00:00
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1346 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1344 ,
"name" : "newOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1338 ,
"src" : "3597:8:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
"nodeType" : "BinaryOperation" ,
2018-05-10 11:12:13 +00:00
"operator" : "!=" ,
2018-05-04 14:04:04 +00:00
"rightExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"hexValue" : "30" ,
"id" : 1345 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3609:1:10" ,
"subdenomination" : null ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"src" : "3597:13:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1343 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "3589:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1347 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "3589:22:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1348 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "3589:22:10"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"expression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1353 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
"src" : "3669:18:10" ,
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1350 ,
"name" : "isOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1156
] ,
"referencedDeclaration" : 1156 ,
"src" : "3670:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1352 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1351 ,
"name" : "newOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1338 ,
"src" : "3678:8:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3670:17:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1349 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "3661:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1354 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
2018-05-10 11:12:13 +00:00
"kind" : "functionCall" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3661:27:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1355 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3661:27:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1361 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1357 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "3768:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1359 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1358 ,
"name" : "oldOwnerIndex" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1334 ,
"src" : "3775:13:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3768:21:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1360 ,
"name" : "oldOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1336 ,
"src" : "3793:8:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"src" : "3768:33:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
2018-05-10 11:12:13 +00:00
] ,
"expression" : {
"argumentTypes" : [
2018-05-04 14:04:04 +00:00
{
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1356 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "3760:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1362 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3760:42:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1363 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3760:42:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1368 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1364 ,
"name" : "isOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1156
2018-05-04 14:04:04 +00:00
] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1156 ,
"src" : "3812:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1366 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1365 ,
"name" : "oldOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1336 ,
"src" : "3820:8:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
"isConstant" : false ,
2018-05-10 11:12:13 +00:00
"isLValue" : true ,
2018-05-04 14:04:04 +00:00
"isPure" : false ,
2018-05-10 11:12:13 +00:00
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "3812:17:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
"id" : 1367 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3832:5:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
"src" : "3812:25:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1369 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3812:25:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1374 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-05-10 11:12:13 +00:00
"isPure" : false ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1370 ,
"name" : "isOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1156
] ,
"referencedDeclaration" : 1156 ,
"src" : "3847:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1372 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1371 ,
"name" : "newOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1338 ,
"src" : "3855:8:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "3847:17:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1373 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3867:4:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"src" : "3847:24:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-10 11:12:13 +00:00
}
} ,
"id" : 1375 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3847:24:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1380 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1376 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "3881:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1378 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1377 ,
"name" : "oldOwnerIndex" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1334 ,
"src" : "3888:13:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "3881:21:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1379 ,
"name" : "newOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1338 ,
"src" : "3905:8:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"src" : "3881:32:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1381 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3881:32:10"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Allows to replace an owner from the Safe with another address.\n This can only be done via a Safe transaction.\n @param oldOwnerIndex Array index position of owner address to be replaced.\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address." ,
"id" : 1383 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
2018-05-10 11:12:13 +00:00
"arguments" : null ,
"id" : 1341 ,
2018-05-04 14:04:04 +00:00
"modifierName" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1340 ,
"name" : "authorized" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1558 ,
"src" : "3523:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
2018-05-10 11:12:13 +00:00
"src" : "3523:10:10"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-10 11:12:13 +00:00
"name" : "replaceOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1339 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1334 ,
"name" : "oldOwnerIndex" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1383 ,
"src" : "3441:21:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1333 ,
"name" : "uint256" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "3441:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1336 ,
"name" : "oldOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1383 ,
"src" : "3464:16:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1335 ,
2018-05-04 14:04:04 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "3464:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1338 ,
"name" : "newOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1383 ,
"src" : "3482:16:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1337 ,
"name" : "address" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "3482:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-10 11:12:13 +00:00
"src" : "3440:59:10"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1342 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
2018-05-10 11:12:13 +00:00
"parameters" : [ ] ,
"src" : "3538:0:10"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"scope" : 1438 ,
"src" : "3419:501:10" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "nonpayable" ,
2018-05-10 11:12:13 +00:00
"superFunction" : null ,
2018-05-04 14:04:04 +00:00
"visibility" : "public"
} ,
{
"body" : {
2018-05-10 11:12:13 +00:00
"id" : 1407 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-10 11:12:13 +00:00
"src" : "4190:240:10" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
2018-05-10 11:12:13 +00:00
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
2018-05-04 14:04:04 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-10 11:12:13 +00:00
} ,
"id" : 1394 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1391 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1385 ,
"src" : "4277:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<=" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1392 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "4291:6:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1393 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "4291:13:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"src" : "4277:27:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1390 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "4269:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1395 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4269:36:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1396 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4269:36:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
2018-05-04 14:04:04 +00:00
{
2018-05-10 11:12:13 +00:00
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"id" : 1400 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1398 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1385 ,
"src" : "4375:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "31" ,
"id" : 1399 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-05-10 11:12:13 +00:00
"isPure" : true ,
"kind" : "number" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Literal" ,
"src" : "4389:1:10" ,
"subdenomination" : null ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"value" : "1"
} ,
"src" : "4375:15:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
}
2018-05-10 11:12:13 +00:00
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1397 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "4367:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1401 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4367:24:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1402 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4367:24:10"
} ,
{
"expression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1405 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"leftHandSide" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1403 ,
"name" : "threshold" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
1152
] ,
"referencedDeclaration" : 1152 ,
"src" : "4401:9:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1404 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1385 ,
"src" : "4413:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"src" : "4401:22:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1406 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4401:22:10"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Allows to update the number of required confirmations by Safe owners.\n This can only be done via a Safe transaction.\n @param _threshold New threshold." ,
"id" : 1408 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
2018-05-10 11:12:13 +00:00
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
"id" : 1388 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1387 ,
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1558 ,
"src" : "4175:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "4175:10:10"
}
] ,
"name" : "changeThreshold" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1386 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1385 ,
"name" : "_threshold" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1408 ,
"src" : "4134:16:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1384 ,
"name" : "uint8" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "4134:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-10 11:12:13 +00:00
"src" : "4133:18:10"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1389 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "4190:0:10"
} ,
"scope" : 1438 ,
"src" : "4109:321:10" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1415 ,
"nodeType" : "Block" ,
"src" : "4513:33:10" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1413 ,
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1152
] ,
"referencedDeclaration" : 1152 ,
"src" : "4530:9:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"functionReturnParameters" : 1412 ,
"id" : 1414 ,
"nodeType" : "Return" ,
"src" : "4523:16:10"
}
]
} ,
"documentation" : null ,
"id" : 1416 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "threshold" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1409 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "4454:2:10"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1412 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1411 ,
2018-05-04 14:04:04 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1416 ,
"src" : "4502:5:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1410 ,
"name" : "uint8" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "4502:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-10 11:12:13 +00:00
"src" : "4501:7:10"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"scope" : 1438 ,
"src" : "4436:110:10" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-05-10 11:12:13 +00:00
"id" : 1427 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-10 11:12:13 +00:00
"src" : "4639:38:10" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1423 ,
"name" : "isOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1156
2018-05-04 14:04:04 +00:00
] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1156 ,
"src" : "4656:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1425 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1424 ,
"name" : "owner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1418 ,
"src" : "4664:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
"isConstant" : false ,
2018-05-10 11:12:13 +00:00
"isLValue" : true ,
2018-05-04 14:04:04 +00:00
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "IndexAccess" ,
"src" : "4656:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"functionReturnParameters" : 1422 ,
"id" : 1426 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Return" ,
2018-05-10 11:12:13 +00:00
"src" : "4649:21:10"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : null ,
"id" : 1428 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
2018-05-10 11:12:13 +00:00
"name" : "isOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1419 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1418 ,
"name" : "owner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1428 ,
"src" : "4569:13:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1417 ,
"name" : "address" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "4569:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-10 11:12:13 +00:00
"src" : "4568:15:10"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1422 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1421 ,
2018-05-04 14:04:04 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1428 ,
"src" : "4629:4:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1420 ,
"name" : "bool" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "4629:4:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-10 11:12:13 +00:00
"src" : "4628:6:10"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"scope" : 1438 ,
"src" : "4552:125:10" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
2018-05-10 11:12:13 +00:00
} ,
2018-05-04 14:04:04 +00:00
{
2018-05-10 11:12:13 +00:00
"body" : {
"id" : 1436 ,
"nodeType" : "Block" ,
"src" : "4840:30:10" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1434 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "4857:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"functionReturnParameters" : 1433 ,
"id" : 1435 ,
"nodeType" : "Return" ,
"src" : "4850:13:10"
}
]
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Returns array of owners.\n @return Array of Safe owners." ,
"id" : 1437 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "getOwners" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-04 14:04:04 +00:00
"id" : 1429 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "4777:2:10"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"payable" : false ,
"returnParameters" : {
"id" : 1433 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1432 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1437 ,
"src" : "4825:9:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
"id" : 1430 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4825:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1431 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "4825:9:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4824:11:10"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"scope" : 1438 ,
"src" : "4759:111:10" ,
"stateMutability" : "view" ,
"superFunction" : null ,
2018-05-04 14:04:04 +00:00
"visibility" : "public"
2018-05-10 11:12:13 +00:00
}
] ,
"scope" : 1439 ,
"src" : "240:4632:10"
}
] ,
"src" : "0:4873:10"
} ,
"legacyAST" : {
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol" ,
"exportedSymbols" : {
"OwnerManager" : [
1438
]
} ,
"id" : 1439 ,
"nodeType" : "SourceUnit" ,
"nodes" : [
{
"id" : 1144 ,
"literals" : [
"solidity" ,
"0.4" ,
".23"
] ,
"nodeType" : "PragmaDirective" ,
"src" : "0:23:10"
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol" ,
"file" : "./SelfAuthorized.sol" ,
"id" : 1145 ,
"nodeType" : "ImportDirective" ,
"scope" : 1439 ,
"sourceUnit" : 1560 ,
"src" : "24:30:10" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
2018-05-04 14:04:04 +00:00
{
2018-05-10 11:12:13 +00:00
"arguments" : null ,
"baseName" : {
2018-05-04 14:04:04 +00:00
"contractScope" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1146 ,
"name" : "SelfAuthorized" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "UserDefinedTypeName" ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1559 ,
"src" : "265:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_contract$_SelfAuthorized_$1559" ,
"typeString" : "contract SelfAuthorized"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1147 ,
"nodeType" : "InheritanceSpecifier" ,
"src" : "265:14:10"
}
] ,
"contractDependencies" : [
1559
] ,
"contractKind" : "contract" ,
"documentation" : "@title OwnerManager - Manages a set of owners and a threshold to perform actions.\n @author Stefan George - <stefan@gnosis.pm>\n @author Richard Meissner - <richard@gnosis.pm>" ,
"fullyImplemented" : true ,
"id" : 1438 ,
"linearizedBaseContracts" : [
1438 ,
1559
] ,
"name" : "OwnerManager" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
2018-05-04 14:04:04 +00:00
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1150 ,
"name" : "owners" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1438 ,
"src" : "287:23:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[]"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"baseType" : {
"id" : 1148 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "287:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1149 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "287:9:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1152 ,
2018-05-04 14:04:04 +00:00
"name" : "threshold" ,
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1438 ,
"src" : "316:22:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1151 ,
2018-05-04 14:04:04 +00:00
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "316:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1156 ,
"name" : "isOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1438 ,
"src" : "415:40:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1155 ,
2018-05-04 14:04:04 +00:00
"keyType" : {
2018-05-10 11:12:13 +00:00
"id" : 1153 ,
2018-05-04 14:04:04 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "424:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
2018-05-10 11:12:13 +00:00
"src" : "415:25:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"valueType" : {
2018-05-10 11:12:13 +00:00
"id" : 1154 ,
2018-05-04 14:04:04 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "435:4:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-05-10 11:12:13 +00:00
"id" : 1229 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-10 11:12:13 +00:00
"src" : "730:767:10" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1167 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1165 ,
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1152
] ,
"referencedDeclaration" : 1152 ,
"src" : "872:9:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"hexValue" : "30" ,
"id" : 1166 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-05-10 11:12:13 +00:00
"isPure" : true ,
"kind" : "number" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Literal" ,
"src" : "885:1:10" ,
"subdenomination" : null ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"src" : "872:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1164 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "864:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1168 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "864:23:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1169 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "864:23:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1174 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1171 ,
"name" : "_threshold" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1161 ,
"src" : "980:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "<=" ,
"rightExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1172 ,
"name" : "_owners" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1159 ,
"src" : "994:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1173 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"memberName" : "length" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-05-10 11:12:13 +00:00
"src" : "994:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"src" : "980:28:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1170 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "972:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1175 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "972:37:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1176 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "972:37:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"commonType" : {
2018-05-04 14:04:04 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-10 11:12:13 +00:00
} ,
"id" : 1180 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1178 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1161 ,
"src" : "1079:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "31" ,
"id" : 1179 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1093:1:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
} ,
"value" : "1"
} ,
"src" : "1079:15:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1177 ,
"name" : "require" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "1071:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1181 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "1071:24:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1182 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "1071:24:10"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"body" : {
"id" : 1219 ,
"nodeType" : "Block" ,
"src" : "1187:246:10" ,
"statements" : [
2018-05-04 14:04:04 +00:00
{
2018-05-10 11:12:13 +00:00
"assignments" : [
1195
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1195 ,
"name" : "owner" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1230 ,
"src" : "1246:13:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1194 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1246:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1199 ,
"initialValue" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1196 ,
"name" : "_owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1159 ,
"src" : "1262:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1198 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1197 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1184 ,
"src" : "1270:1:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1262:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "1246:26:10"
} ,
{
"expression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1203 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1201 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1195 ,
"src" : "1294:5:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1202 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1303:1:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "1294:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1200 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "1286:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1204 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
2018-05-10 11:12:13 +00:00
"kind" : "functionCall" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "1286:19:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1205 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1286:19:10"
} ,
2018-05-04 14:04:04 +00:00
{
2018-05-10 11:12:13 +00:00
"expression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1210 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
"src" : "1371:15:10" ,
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1207 ,
"name" : "isOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1156
] ,
"referencedDeclaration" : 1156 ,
"src" : "1372:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1209 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1208 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1195 ,
"src" : "1380:5:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1372:14:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
2018-05-04 14:04:04 +00:00
"expression" : {
2018-05-10 11:12:13 +00:00
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1206 ,
"name" : "require" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "1363:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1211 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
2018-05-10 11:12:13 +00:00
"kind" : "functionCall" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1363:24:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1212 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1363:24:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1217 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1213 ,
"name" : "isOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1156
] ,
"referencedDeclaration" : 1156 ,
"src" : "1401:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1215 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1214 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1195 ,
"src" : "1409:5:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "1401:14:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1216 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1418:4:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"src" : "1401:21:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1218 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1401:21:10"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1190 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1187 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1184 ,
"src" : "1162:1:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1188 ,
"name" : "_owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1159 ,
"src" : "1166:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1189 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "1166:14:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "1162:18:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1220 ,
"initializationExpression" : {
"assignments" : [
1184
] ,
"declarations" : [
2018-05-04 14:04:04 +00:00
{
2018-05-10 11:12:13 +00:00
"constant" : false ,
"id" : 1184 ,
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1230 ,
"src" : "1147:9:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"typeName" : {
"id" : 1183 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1147:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"value" : null ,
"visibility" : "internal"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1186 ,
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1185 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1159:1:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "1147:13:10"
} ,
"loopExpression" : {
2018-05-04 14:04:04 +00:00
"expression" : {
2018-05-10 11:12:13 +00:00
"argumentTypes" : null ,
"id" : 1192 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "1182:3:10" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1191 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1184 ,
"src" : "1182:1:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
} ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1193 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1182:3:10"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "ForStatement" ,
"src" : "1142:291:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1223 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1221 ,
"name" : "owners" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1150 ,
"src" : "1442:6:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
2018-05-04 14:04:04 +00:00
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1222 ,
"name" : "_owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1159 ,
"src" : "1451:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"src" : "1442:16:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1224 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1442:16:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1227 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1225 ,
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1152
2018-05-04 14:04:04 +00:00
] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1152 ,
"src" : "1468:9:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1226 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1161 ,
"src" : "1480:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"src" : "1468:22:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1228 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "1468:22:10"
}
]
} ,
"documentation" : "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction." ,
"id" : 1230 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "setupOwners" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1162 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1159 ,
"name" : "_owners" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1230 ,
"src" : "672:17:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
"id" : 1157 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "672:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1158 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "672:9:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "internal"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"constant" : false ,
"id" : 1161 ,
"name" : "_threshold" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1230 ,
"src" : "691:16:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
"id" : 1160 ,
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "691:5:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "671:37:10"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1163 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "730:0:10"
} ,
"scope" : 1438 ,
"src" : "651:846:10" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1272 ,
"nodeType" : "Block" ,
"src" : "1826:342:10" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
2018-05-04 14:04:04 +00:00
{
2018-05-10 11:12:13 +00:00
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1242 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1240 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1232 ,
"src" : "1885:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"hexValue" : "30" ,
"id" : 1241 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-05-10 11:12:13 +00:00
"isPure" : true ,
"kind" : "number" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Literal" ,
"src" : "1894:1:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "1885:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1239 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "1877:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1243 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1877:19:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1244 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1877:19:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1249 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
"src" : "1954:15:10" ,
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1246 ,
"name" : "isOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1156
] ,
"referencedDeclaration" : 1156 ,
"src" : "1955:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1248 ,
"indexExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1247 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1232 ,
"src" : "1963:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1955:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1245 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "1946:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1250 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
2018-05-10 11:12:13 +00:00
"kind" : "functionCall" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1946:24:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1251 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1946:24:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
2018-05-04 14:04:04 +00:00
{
2018-05-10 11:12:13 +00:00
"argumentTypes" : null ,
"id" : 1255 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1232 ,
"src" : "1992:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
] ,
2018-05-04 14:04:04 +00:00
"expression" : {
2018-05-10 11:12:13 +00:00
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
] ,
"expression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1252 ,
"name" : "owners" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1150 ,
"src" : "1980:6:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1254 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "push" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "1980:11:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$" ,
"typeString" : "function (address) returns (uint256)"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1256 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1980:18:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1257 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1980:18:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1262 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1258 ,
"name" : "isOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1156
] ,
"referencedDeclaration" : 1156 ,
"src" : "2008:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1260 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1259 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1232 ,
"src" : "2016:5:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "2008:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"hexValue" : "74727565" ,
"id" : 1261 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2025:4:10" ,
"subdenomination" : null ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"src" : "2008:21:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1263 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "2008:21:10"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"condition" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"commonType" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"id" : 1266 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"leftExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1264 ,
2018-05-04 14:04:04 +00:00
"name" : "threshold" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
1152
] ,
"referencedDeclaration" : 1152 ,
"src" : "2097:9:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1265 ,
2018-05-04 14:04:04 +00:00
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1234 ,
"src" : "2110:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
2018-05-10 11:12:13 +00:00
"src" : "2097:23:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"falseBody" : null ,
"id" : 1271 ,
"nodeType" : "IfStatement" ,
"src" : "2093:68:10" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1268 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1234 ,
"src" : "2150:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
] ,
"id" : 1267 ,
"name" : "changeThreshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1408 ,
"src" : "2134:15:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_uint8_$returns$__$" ,
"typeString" : "function (uint8)"
}
} ,
"id" : 1269 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2134:27:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1270 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2134:27:10"
}
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Allows to add a new owner to the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param owner New owner address.\n @param _threshold New threshold." ,
"id" : 1273 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
2018-05-10 11:12:13 +00:00
"modifiers" : [
{
"arguments" : null ,
"id" : 1237 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1236 ,
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1558 ,
"src" : "1811:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "1811:10:10"
}
] ,
"name" : "addOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1235 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1232 ,
"name" : "owner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1273 ,
"src" : "1755:13:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1231 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1755:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1234 ,
2018-05-04 14:04:04 +00:00
"name" : "_threshold" ,
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1273 ,
"src" : "1770:16:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1233 ,
2018-05-04 14:04:04 +00:00
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "1770:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-10 11:12:13 +00:00
"src" : "1754:33:10"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1238 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-05-10 11:12:13 +00:00
"src" : "1826:0:10"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"scope" : 1438 ,
"src" : "1737:431:10" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-05-10 11:12:13 +00:00
"id" : 1331 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-10 11:12:13 +00:00
"src" : "2611:487:10" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1290 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1288 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1285 ,
"name" : "owners" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1150 ,
"src" : "2706:6:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
} ,
"id" : 1286 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2706:13:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "-" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "31" ,
"id" : 1287 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
2018-05-10 11:12:13 +00:00
"kind" : "number" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Literal" ,
"src" : "2722:1:10" ,
"subdenomination" : null ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"value" : "1"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"src" : "2706:17:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
"nodeType" : "BinaryOperation" ,
2018-05-10 11:12:13 +00:00
"operator" : ">=" ,
2018-05-04 14:04:04 +00:00
"rightExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1289 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1279 ,
"src" : "2727:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"src" : "2706:31:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1284 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "2698:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1291 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "2698:40:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1292 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "2698:40:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1298 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"leftExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1294 ,
"name" : "owners" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1150 ,
"src" : "2818:6:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1296 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1295 ,
"name" : "ownerIndex" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1275 ,
"src" : "2825:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-10 11:12:13 +00:00
"src" : "2818:18:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1297 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1277 ,
"src" : "2840:5:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"src" : "2818:27:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1293 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "2810:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1299 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "2810:36:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1300 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "2810:36:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1305 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1301 ,
"name" : "isOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1156
] ,
"referencedDeclaration" : 1156 ,
"src" : "2856:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1303 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1302 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1277 ,
"src" : "2864:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-05-10 11:12:13 +00:00
"src" : "2856:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"hexValue" : "66616c7365" ,
"id" : 1304 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2873:5:10" ,
"subdenomination" : null ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"src" : "2856:22:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1306 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "2856:22:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1316 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1307 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "2888:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1309 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1308 ,
"name" : "ownerIndex" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1275 ,
"src" : "2895:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "2888:18:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1310 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "2909:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1315 ,
"indexExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
"commonType" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1314 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"expression" : {
"argumentTypes" : null ,
"id" : 1311 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "2916:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1312 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2916:13:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
"nodeType" : "BinaryOperation" ,
2018-05-10 11:12:13 +00:00
"operator" : "-" ,
2018-05-04 14:04:04 +00:00
"rightExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"hexValue" : "31" ,
"id" : 1313 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-05-10 11:12:13 +00:00
"isPure" : true ,
"kind" : "number" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Literal" ,
"src" : "2932:1:10" ,
"subdenomination" : null ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
} ,
"value" : "1"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"src" : "2916:17:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2909:25:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
} ,
"src" : "2888:46:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1317 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2888:46:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1321 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "--" ,
"prefix" : false ,
"src" : "2944:15:10" ,
"subExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1318 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "2944:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
} ,
"id" : 1320 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2944:13:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1322 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2944:15:10"
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"id" : 1325 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1323 ,
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1152
2018-05-04 14:04:04 +00:00
] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1152 ,
"src" : "3027:9:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1324 ,
"name" : "_threshold" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1279 ,
"src" : "3040:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"src" : "3027:23:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1330 ,
"nodeType" : "IfStatement" ,
"src" : "3023:68:10" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1327 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1279 ,
"src" : "3080:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
] ,
"id" : 1326 ,
"name" : "changeThreshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1408 ,
"src" : "3064:15:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_uint8_$returns$__$" ,
"typeString" : "function (uint8)"
}
} ,
"id" : 1328 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3064:27:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1329 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3064:27:10"
}
}
]
} ,
"documentation" : "@dev Allows to remove an owner from the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param ownerIndex Array index position of owner address to be removed.\n @param owner Owner address to be removed.\n @param _threshold New threshold." ,
"id" : 1332 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
"id" : 1282 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1281 ,
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1558 ,
"src" : "2596:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "2596:10:10"
}
] ,
"name" : "removeOwner" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1280 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1275 ,
"name" : "ownerIndex" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1332 ,
"src" : "2520:18:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1274 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2520:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1277 ,
"name" : "owner" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1332 ,
"src" : "2540:13:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1276 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2540:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
{
"constant" : false ,
"id" : 1279 ,
"name" : "_threshold" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1332 ,
"src" : "2555:16:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
"id" : 1278 ,
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2555:5:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2519:53:10"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1283 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "2611:0:10"
} ,
"scope" : 1438 ,
"src" : "2499:599:10" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1382 ,
"nodeType" : "Block" ,
"src" : "3538:382:10" ,
"statements" : [
2018-05-04 14:04:04 +00:00
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1346 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1344 ,
"name" : "newOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1338 ,
"src" : "3597:8:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
"nodeType" : "BinaryOperation" ,
2018-05-10 11:12:13 +00:00
"operator" : "!=" ,
2018-05-04 14:04:04 +00:00
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-05-10 11:12:13 +00:00
"id" : 1345 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-10 11:12:13 +00:00
"src" : "3609:1:10" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-05-10 11:12:13 +00:00
"src" : "3597:13:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1343 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "3589:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1347 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "3589:22:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1348 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "3589:22:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1353 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
"src" : "3669:18:10" ,
"subExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"baseExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1350 ,
"name" : "isOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1156
] ,
"referencedDeclaration" : 1156 ,
"src" : "3670:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1352 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1351 ,
"name" : "newOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1338 ,
"src" : "3678:8:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
"isConstant" : false ,
2018-05-10 11:12:13 +00:00
"isLValue" : true ,
"isPure" : false ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "IndexAccess" ,
"src" : "3670:17:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1349 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "3661:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1354 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "3661:27:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1355 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-10 11:12:13 +00:00
"src" : "3661:27:10"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"expression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1361 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1357 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "3768:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1359 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1358 ,
"name" : "oldOwnerIndex" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1334 ,
"src" : "3775:13:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3768:21:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1360 ,
"name" : "oldOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1336 ,
"src" : "3793:8:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "3768:33:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-10 11:12:13 +00:00
"id" : 1356 ,
"name" : "require" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "3760:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1362 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-10 11:12:13 +00:00
"src" : "3760:42:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1363 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3760:42:10"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"expression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1368 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"leftHandSide" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"baseExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1364 ,
"name" : "isOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1156
] ,
"referencedDeclaration" : 1156 ,
"src" : "3812:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1366 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1365 ,
"name" : "oldOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1336 ,
"src" : "3820:8:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "3812:17:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"hexValue" : "66616c7365" ,
"id" : 1367 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-05-10 11:12:13 +00:00
"isPure" : true ,
"kind" : "bool" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Literal" ,
"src" : "3832:5:10" ,
"subdenomination" : null ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-10 11:12:13 +00:00
} ,
"value" : "false"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"src" : "3812:25:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1369 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3812:25:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1374 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1370 ,
"name" : "isOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1156
] ,
"referencedDeclaration" : 1156 ,
"src" : "3847:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1372 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1371 ,
"name" : "newOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1338 ,
"src" : "3855:8:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "3847:17:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1373 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3867:4:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"src" : "3847:24:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1375 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3847:24:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1380 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-05-10 11:12:13 +00:00
"isPure" : false ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1376 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "3881:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1378 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1377 ,
"name" : "oldOwnerIndex" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1334 ,
"src" : "3888:13:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "3881:21:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1379 ,
"name" : "newOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1338 ,
"src" : "3905:8:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"src" : "3881:32:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1381 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3881:32:10"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Allows to replace an owner from the Safe with another address.\n This can only be done via a Safe transaction.\n @param oldOwnerIndex Array index position of owner address to be replaced.\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address." ,
"id" : 1383 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
2018-05-10 11:12:13 +00:00
"arguments" : null ,
"id" : 1341 ,
2018-05-04 14:04:04 +00:00
"modifierName" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1340 ,
"name" : "authorized" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1558 ,
"src" : "3523:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
2018-05-10 11:12:13 +00:00
"src" : "3523:10:10"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-10 11:12:13 +00:00
"name" : "replaceOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1339 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1334 ,
"name" : "oldOwnerIndex" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1383 ,
"src" : "3441:21:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1333 ,
2018-05-04 14:04:04 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "3441:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1336 ,
"name" : "oldOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1383 ,
"src" : "3464:16:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1335 ,
"name" : "address" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "3464:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1338 ,
"name" : "newOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1383 ,
"src" : "3482:16:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1337 ,
"name" : "address" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "3482:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3440:59:10"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1342 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "3538:0:10"
} ,
"scope" : 1438 ,
"src" : "3419:501:10" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1407 ,
"nodeType" : "Block" ,
"src" : "4190:240:10" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1394 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1391 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1385 ,
"src" : "4277:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "<=" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-05-04 14:04:04 +00:00
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1392 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "4291:6:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1393 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
2018-05-10 11:12:13 +00:00
"isLValue" : true ,
2018-05-04 14:04:04 +00:00
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "4291:13:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"src" : "4277:27:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
}
2018-05-10 11:12:13 +00:00
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1390 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "4269:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1395 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
2018-05-10 11:12:13 +00:00
"kind" : "functionCall" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4269:36:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1396 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4269:36:10"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
2018-05-04 14:04:04 +00:00
{
2018-05-10 11:12:13 +00:00
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1400 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1398 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1385 ,
"src" : "4375:10:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : ">=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "31" ,
"id" : 1399 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4389:1:10" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_1_by_1" ,
"typeString" : "int_const 1"
} ,
"value" : "1"
} ,
"src" : "4375:15:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1397 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2468 ,
2469
] ,
"referencedDeclaration" : 2468 ,
"src" : "4367:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"id" : 1401 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4367:24:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1402 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4367:24:10"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"id" : 1405 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-05-10 11:12:13 +00:00
"isPure" : false ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1403 ,
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1152
] ,
"referencedDeclaration" : 1152 ,
"src" : "4401:9:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1404 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1385 ,
"src" : "4413:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"src" : "4401:22:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"id" : 1406 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4401:22:10"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Allows to update the number of required confirmations by Safe owners.\n This can only be done via a Safe transaction.\n @param _threshold New threshold." ,
"id" : 1408 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
2018-05-10 11:12:13 +00:00
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
"id" : 1388 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1387 ,
"name" : "authorized" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1558 ,
"src" : "4175:10:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "4175:10:10"
}
] ,
"name" : "changeThreshold" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1386 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1385 ,
"name" : "_threshold" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1408 ,
"src" : "4134:16:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1384 ,
"name" : "uint8" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "4134:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-10 11:12:13 +00:00
"src" : "4133:18:10"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1389 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "4190:0:10"
} ,
"scope" : 1438 ,
"src" : "4109:321:10" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1415 ,
"nodeType" : "Block" ,
"src" : "4513:33:10" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1413 ,
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1152
] ,
"referencedDeclaration" : 1152 ,
"src" : "4530:9:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"functionReturnParameters" : 1412 ,
"id" : 1414 ,
"nodeType" : "Return" ,
"src" : "4523:16:10"
}
]
} ,
"documentation" : null ,
"id" : 1416 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "threshold" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1409 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "4454:2:10"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1412 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1411 ,
2018-05-04 14:04:04 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1416 ,
"src" : "4502:5:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1410 ,
"name" : "uint8" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "4502:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-10 11:12:13 +00:00
"src" : "4501:7:10"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"scope" : 1438 ,
"src" : "4436:110:10" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-05-10 11:12:13 +00:00
"id" : 1427 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-10 11:12:13 +00:00
"src" : "4639:38:10" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1423 ,
"name" : "isOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
1156
2018-05-04 14:04:04 +00:00
] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1156 ,
"src" : "4656:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1425 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1424 ,
"name" : "owner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-10 11:12:13 +00:00
"referencedDeclaration" : 1418 ,
"src" : "4664:5:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
"isConstant" : false ,
2018-05-10 11:12:13 +00:00
"isLValue" : true ,
2018-05-04 14:04:04 +00:00
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "IndexAccess" ,
"src" : "4656:14:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"functionReturnParameters" : 1422 ,
"id" : 1426 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Return" ,
2018-05-10 11:12:13 +00:00
"src" : "4649:21:10"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : null ,
"id" : 1428 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
2018-05-10 11:12:13 +00:00
"name" : "isOwner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1419 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1418 ,
"name" : "owner" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1428 ,
"src" : "4569:13:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1417 ,
"name" : "address" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "4569:7:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-10 11:12:13 +00:00
"src" : "4568:15:10"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-10 11:12:13 +00:00
"id" : 1422 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-10 11:12:13 +00:00
"id" : 1421 ,
2018-05-04 14:04:04 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2018-05-10 11:12:13 +00:00
"scope" : 1428 ,
"src" : "4629:4:10" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-10 11:12:13 +00:00
"id" : 1420 ,
"name" : "bool" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-05-10 11:12:13 +00:00
"src" : "4629:4:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4628:6:10"
} ,
"scope" : 1438 ,
"src" : "4552:125:10" ,
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1436 ,
"nodeType" : "Block" ,
"src" : "4840:30:10" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1434 ,
"name" : "owners" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1150 ,
"src" : "4857:6:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"functionReturnParameters" : 1433 ,
"id" : 1435 ,
"nodeType" : "Return" ,
"src" : "4850:13:10"
}
]
} ,
"documentation" : "@dev Returns array of owners.\n @return Array of Safe owners." ,
"id" : 1437 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "getOwners" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1429 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "4777:2:10"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1433 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1432 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1437 ,
"src" : "4825:9:10" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
"id" : 1430 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4825:7:10" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1431 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "4825:9:10" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-10 11:12:13 +00:00
"src" : "4824:11:10"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"scope" : 1438 ,
"src" : "4759:111:10" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
}
] ,
2018-05-10 11:12:13 +00:00
"scope" : 1439 ,
"src" : "240:4632:10"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-10 11:12:13 +00:00
"src" : "0:4873:10"
2018-05-04 14:04:04 +00:00
} ,
"compiler" : {
"name" : "solc" ,
2018-05-10 11:12:13 +00:00
"version" : "0.4.23+commit.124ca40d.Emscripten.clang"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"networks" : { } ,
2018-05-04 14:04:04 +00:00
"schemaVersion" : "2.0.0" ,
2018-05-10 11:12:13 +00:00
"updatedAt" : "2018-05-10T10:43:07.899Z"
2018-05-04 14:04:04 +00:00
}